IP
GUIfl DEL USURRIO
m,
mm
■'"■■■/ i' ■■'■ if- ' ■ ^ j^ " & '"'"'
b™
*
1111 MT VTTI 1 1 MM
■ ; \#
%**%»*j&
4B-4 ' ' ' '-
lis
: — j
" '^
♦ ...
f: A ' S ■ D ■ >'-F ' G H
BE) ' ' '
u I a P
±f*% -
- ^ .: : ;
W M .< > J
- " ^ E L
' ^JJF=
■■■' J' ' •■ / ■■" ■
re A '«tMMM
■■-.:■• V ^
1/
■ r
Aclaraciones
sobre la Guia del Usuario
del CPC464
La Informatica ha recorrido un camino muy largo en un peri'odo
muy corto de tiempo. De todos los avances tecnologicos del siglo
veinte, indudablemente el mas impresionante ha correspondido al
campo de los ordenadores.
El desarrollo de estas maquinas y de los programas que las controlan
ha avanzado mucho mas rapidamente de lo que suponen gran parte
de los usuarios, por lo que intentar mostrar a quienes poseen un
CP064 todas las posibilidades v toda la capacidad -su sistema
operativo BASIC, y de los circuitos que configuran ai-equipo, requerr- 3.
varios miles de paginas.
Asi, esta Guia de Usuario es una introduccion cond|sa al CPC46^
y a su programacion. Sera complementada por muchos cursos y
publicaciones didacticas mas especi'ficos y detallados.
Aquellos usuarios que ya se han familiarizado con otros dialectos
de BASIC lograran -muy facilmente y en forma rapida- dominar
la estructura AMSTRAD BASIC; y los que comiencen con esta potente
maquina, apreciaran la naturaleza directa y sin ambiguedades de
la terminologia empleada que ha sido^especialmente pensada para
evitar las peculiaridades muchas veces presentes en interpretaciones
jcaprichosas del BASIC. De la misma forma, nos hemos preocupado
de introducir distintos aspectos -fundameptales para este lenguaje
en el futuro- cuando haya disponibles, computadoras de bajo coste
que ofrezcan analogas posibilidades a las que el CPC464 posee ya
y ahora.
La Guia de Usuario esta dividida en tres secciones
La primera la llamamos "FUNDAMENTOS PARA PRINCIPIANTES",
y ha sido escrita principalmente para presentarle los conceptos y
la terminologia especi'fica -y en constante evolucion de los ordenadores.
Si previamente no ha tenido un ordenador propio, ni tampoco la
posibilidad de usar hauitualmente alguno, y si ni siquiera ha podido
disfrutar produciendo un pequeno y simple programa, entonces le
aconsejamos que inieie la lectura de esta Guia de Usuario por los
FUNDAMENTOS que le comentamos en esta primera seccion.
AMSTRAD CPC464
Aquellos que posean experiencia previa en este campo, pueden pasar
directamente al Capi'tulo Primero de la segunda seccion de esta Gui'a
de Usuario. No solo nos hemos preocupado de reiterar los temas
esenciales y necesarios para la instalacion y puesta en marcha de
la maquina; sino que nos hemos concentrado en presentar los rasgos
especi'ficos del sistema CPC464 de forma clara y comprensible,
y haciendo mi'nimas hipotesis sobre el grado de experiencia alcanzado
por el lector.
Cada uno de los capi'tulos primordiales ha sido escrito para proporcionar
una rapida vision sobre las muchas facilidades existentes en el CPC464.
Algunos puntos fundamentales se resaltan y destacan repetidamente,
para que asi' muchos de los nuevos usuarios logren su deseo de "zambullirse"
inmediatamente en las distintas facetas de sonidos y graficos, sin
mas que una muy breve -pero imprescindible- introducciori al teclado
y a los aspectos mas metodicos del aprendizaje del lenguaje BASIC.
El Curso de Entrenamiento "Gui'a al BASIC" de AMSTRAD, esta
planteado para darte completa y exhaustiva ayuda para el aprendizaje
de todas las facultades de tu CPC464 y de sus ilimitadas posibilidades
como combinacion de "tutor" en tus estudios, consola para tus juegos,
y ordenador "puro". Nosotros te aconsejamos firmemente que consigas
aprender solidamente el uso del CPC464, y para ello invierte en
un ejemplar de la "Gui'a al BASIC" de AMSTRAD, -por supuesto,
si es que no lo tienes ya en tu poder.
Finalmente, la extensa seccion de Apendices, te proveera un amplio
panorama de conceptSs inf ormaticos, asi' como de aquellos puntos
de referenda que son especi'ficos de esta potente maquina.
Nosotros te deseamos el mejor de los exitos -no habrias podido elegir
un mejor bien para tu dinero; ni por supuesto, un ordenador con
mejores facultades para desarrollar tu comprension y dominio sobre
todos los aspectos de la informatica. No existe un camino mejor
para aprender informatica que practicar sobre un ordenador, y el
CPC464 en particular -te lo garantizamos- llegara a ser tu
"mas servicial amigo".
•
AMSTRAD CPC*64
9
•
•
1
•
*I
AMSOFT
A division of
Mftmm
CONSUMER ELECTRONICS PLC
© Copyright 1984 AMSOFT, AMSTRAD Consumer Electronics pic and Locomotive Software Limited
Neither the whole or any part of the information contained herein, or the product described in this
manual may be adapted or reproduced in any material form except with the prior written approval of
AMSTRAD Consumer Electronics pic ('AMSTRAD').
The product described in this manual and products for use with it are subject to continuous development and
improvement. All information of a technical nature and particulars of the product and its use (including the
information and particulars in this manual are given by AMSTRAD in good faith. However, it is acknowledged that
there may be errors or omissions in this manual. A list of details of any amendments or revisions to this manual can be
obtained by sending a stamped, self addressed envelope to AMSOFT Technical Enquiries. We ask that all users take
care to submit their reply paid user registration and guarantee cards.
AMSOFT welcome comments and suggestions relating to the product or this manual.
All correspondance should be be addressed to:
AMSOFT
169 Kings Road
Brentwood
Essex GM144EF
All maintenance and service on the product must be carried out by AMSOFT authorised dealers. Neither
AMSOFT nor AMSTRAD can accept any liability whatsoever for any loss or damage caused by service or
maintenance by unauthorised personnel. This guide is intended only to assist the reader in the use of the
product, and therefore AMSOFT and AMSTRAD shall not be liable for any loss or damage
whatsoever arising from the use of any information or particulars in, or any error or omission in, this
guide or any incorrect use of the product.
Within this manual, the reference Z80 is used with acknowledgement to Zilog Inc.
First Published 1984
Published by AMSTRAD
Typeset by AMSOFT Computer Graphics '
AMSTRAD is a registered trademark of AMSTRAD Consumer Electronics pic. Unauthorised use of the trademark or
word AMSTRAD is strictly forbidden.
Version castellana
Traduccion, adaptacion y composicion
CONORG, S.A.
IMPORTANTE
Cuando leas esta Guia de Usuario, deberas tener presente que usamos
diferentes estilos de letra que indican diferentes formas de hacer
referencias a los programas; que hay teclas que se encuentran en
el ordenador pero que no exponen ningun caracter en la pantalla
al ser pulsadas; y "descripciones generales" asociadas con palabras
de programacion, pero que no se teclean como parte de la instruccion
donde aparecen.
1.
2.
4.
6.
7.
Conecta el cable de alimentacion siempre a una clavija de 3
patillas y dadas en la seccion titulada INSTALAOION.
Nunca conectes el Teclado, el Monitor o el Alimentador/Modulador
a ninguna parte de equipo o red electrica diferente a la descrita
en esta Guia. El no cumplimiento de esta advertencia podria
producir un severo dano al equipo y -consecuentemente- invalidacion
de la garantia.
Manten los ceniceros, bebidas, etc. lo suficientemente alejados
del teclado de tu ordenador, del Alimentador/Modulador y del
Monitor. Si penetrase liquido al interior de cualquiera de estas
unidades, podria provocar danos irreparables. Ante un percance
de esta naturaleza, consulta a personal adecuadamente cualificado.
No bloquees ni cubras las ranuras de ventilacion situadas en
la parte superior y trasera del Teclado, del Monitor y del Alimentador/
Modulador. *
Toda interrupcion en el abastecimiento de energia electrica
producira la perdida de toda la informacion almacenada en la
memoria de lectura y escritura del CPC464. Si deseas guardar
algun programa, consulta el Capftulo 2 despues de haber completado
la seccion de Fundamentos.
Se recomienda el uso de cintas magneticas especrficamente
disenadas para usar con ordenadores. Sin embargo, es perfectamente
aceptable el empleo de cintas del tipo audio, de buena calidad
y producidas por fabricas de prestigio, siempre que no sean
Cr02 o cintas de "metal", y que no tengan uan duracion superior
a 90 minutos (C-90).
Para ayudarte a localizar mas facilmente los programas grabados,
nos permitimos sugerirte que uses cintas C-12 (6 minutos por cara).
Considera que aquellas cintas que contienen programas de otros
tipos de ordenador no pueden ser empleadas en el CPC464, salvo
que hayan sido oficialmente declaradas "compatibles" por nosotros.
•
•
•
•
•
*
•
•
t
«
i
*
AMSTRAD CPC464
•
8.
10.
11.
12.
13.
La tecla de Grabacion (Record) no actuara si la lengiieta de
seguridad (provista para impedir borrados accidentales) ha sido
cortada. Por favor, no fuerces esta tecla en este caso, pues
danarias el mecanismo de grabacion. Si deseas volver a grabar
esas cintas en que se ha quitado la lengiieta de seguridad -situada
en la parte posterior de la cinta- podras hacerlo cubriendo el
orificio resultante con cinta adhesiva.
Recuerda que has de asegurar que la parte inicial de la cinta
(normalmente de distinto color) se encuentra ya enrollada en
el carrete receptor antes de comenzar la grabacion de tu programa.
Procura, con especial atencion, no operar ni conservar ninguna
de las unidades expuestas a la luz solar directa; en zonas con
temperaturas excesivamente altas o excesivamente bajas; en
areas de muchas humedad o mucho polvo, o sujetas a fuertes
vibraciones, Tampoco, nunca almacenes las cintas en areas con
intensos campos magneticos, como los existentes en las inmediaciones
de altavoces y grandes motores electricos.
El cuidado general de tus cintas y la limpieza regularmente
de tu equipo de cassettes, te mantendra fuera de problemas
y de la perdida de programas.
No existen piezas o partes dentro de la unidad que deban ser
ajustadas ni engrasadas. No intentes manipular en el interior
de tu equipo, que posee personal especializado.
Ni la totalidad, ni ninguna parte de la informatica contenida
en esta publicacion, ni los programas o productos descritos
en este manual, podras ser adaptados o reproducidos en forma
material alguna.
AMSTRAD CPC464
^M
Contenido
SOBRE ESTA GUIA DE USUARIO
FUNDAMENTOS PARA PRINCIPANTES
Una breve introduccion para los que comienzan
Fl Instalacion
F2 Familiarizacion con el Teclado
F3 Graficos, Modos y Sonidos
1 INICIACION
Conectando el Ordenador
Puesta en marcha
Lo primordial del teclado
Mostrando el repertorio de caracteres
Editando y corrigiendo
2 GRABADORA/REPRODUCTORA DE DATOS EN CINTA
Cargando y Grabando con el cassette
La cinta de Bienvenida
LO PRIMORDIAL DEL BASIC
Una Introduccion a los Principios del BASIC CPC464
Sintaxis del BASIC-AMSTRAD
Variables, Operadores
Ejercicios Simples en BASIC
Teclas Definibles por el usuario
PRINT y Formas de exposicion
it VARIABLES, OPERADORES Y DATOS
Formato de la Imagen
Datos y Tablas
Dimensionando
Ubicacion
CONTENIDO
5 LO PRIMORDIAL DE LOS GRAFICOS
Los principios en los Graficos a Color del AMSTRAD CPC464
INK, PEN, PAPER
MODES, PIXELS, ORIGINS, WINDOWS
Simples Rutinas para Graficos
Caracteres Definibles por el usuario
6 LO PRIMORDIAL DE LOS SONIDOS
El Sonido en el CPC464
Tonos y Envolventes de Volumen
"Colas" de Sonidos
Efectos
7 IMPRESORAS Y 3UEGOS
Usando los "Joystick" de juegos
Comando JOY
Acoplamiento paralelo de una impresora
8 CONCISA GUIA DE REFERENCIA PARA EL "AMSTRAD-BASIC"
Un conciso resumen del lenguaje "BASIC" y palabras clave usadas
para la Programacion del CPC464; Enunciadas en Orden Alfabetico.
9 INFORMACION ADICIONAL PARA PROGRAMACION
La organizacion interna de los programas residentes
Interrupciones y su Significacion
Caracteres de control
La relacion entre las subrutinas en Codigo-Maquina y los Comandos
"BASIC"
10 FACETAS DE LAS INTERRUPCIONES
Caracteristicas para "Tiempo Real"
AFTER, EVERY, REMAIN
CONTENIDO
APENDICES
I Una guia acerca de lo que un principiante puede y no puede
esperar que su Ordenador haga
Glosario de Terminos usados en Informatica
II "Bits" y "Bytes" - Binario y hexadecimal: Una breve leccion.
III Codigos ASCII y el Repertorio de Caracteres
Definiciones y reticulos de los caracteres
Codigos en teclado, y de palabras reservadas
IV Introduccion y Descripcion General para Usuarios Expertos
V El "Bus" de Ampliacion
Conexiones de entrada y salida (INPUT/OUTPUT)
VI Organizadores y Elaboradores de Textos en Pantalla
VII Compositor Musical
Peribdos de Notas y Tonos
VIII Palabras Reservadas, y Codigos y Mensajes de Error
CONTENIDO
AMSTRAD CPC464
Fundamentos 1:
INSTALACION
Instrucciones Iniciales sobre Desembalado, Interconexiones y Puesta
en marcha del Sistema CPC464.
El Ordenador Personal a Color CPC464 puede ser instalado eligiendo
entre:
1.1 Monitor de Pantalia Verde AMSTRAD GT64
1.2 Monitor Polfcromo AMSTRAD CTM640
1.3 Alimentador/Modulador AMSTRAD MP1 y un receptor
domestico de Television (UHF)
Por favor, consulta la seccion correspondiente para preparar y conectar
correctamente el sistema de ordenador, procediendo conforme a
las instrucciones de operacion.
1.1 Monitor de Pantalia Verde AMSTRAD GT64
Extraiga el Monitor de su caja y conecte una clavija de dos patillas
a los cables de alimentacion, conforme a las instrucciones que siguen.
. IMPORTANTE — j
Los hilos conductores de este cable de alimentacion, responden al
siguiente codigo:
Azul: Neutro
Marron: Activo
Si se usa una clavija de 13 Amps (BS1363) se debe insertar un fusible
de 5 Amps. El fusible de 13 amperios provisto en estas clavijas
NO DEBE USARSE. Si se usa cualquier otra clase de clavija, debe
seguir insertandose un fusible de 5 Amps en el cirtuito de alimentacion,
sea en la clavija, en el enchufe o en el tablero de distribucion. Como
los colores de los hilos en el cable de alimentacion de los equipos
puede que no concuerden con los colores o marcas de las patillas
de la clavija a emplear, procede de la siguiente forma:
El hilo de color AZUL se conecta al terminal marcado con "N" o
de color NEGRO.
El hilo de color MARRON se conecta al terminal marcado con "L"
o de color R030.
Pagina Fl.l
*
FUNDAMENTOS
ADVERTENCIA
Desconecta el enchufe de red, la clavija del cable de alimentacion
siempre que no estes usando el monitor. No se requiere hacer ninguna
conexion en el interior del monitor, por lo tanto no trates de obtener
acceso a las partes internas del Monitor-
El ordenador debera ser colocado enfrente del Monitor en una mesa
apropiada y que se encuentre cercana a algun enchufe de red con
suministro de corriente. Como se muestra en la Fig. 1, conecta
el cable con clavija mas grande (6 pines DIN) del Monitor al enchufe
hembra marcado MONITOR en la parte posterior del ordenador.
Conecta el cable del Monitor con enchufe mas pequeno (corriente
continua 5Volt) al enchufe marcado 5V D.C. en la parte posterior
del ordenador.
Figura 1
Monitor
Conector del MONITOR,
Asegurate que el boton POWER del Monitor se encuentre en la posicion
OFF (apagado). Conecta la clavija de red del Monitor al enchufe
de (240 volts) corriente alterna.
Ahora enciende el monitor, y posteriormente el ordenador usando
el interruptor deslizante marcado POWER (energia) en el extremo
derecho del ordenador.
El testigo luminoso rojo ON situado en la parte superior central
del teclado del ordenador debera encenderse, y el Monitor mostrar
en la pantalla el siguiente mensaje:
Ansira<l 64K Microcomputer (vl)
•1984 Am s trad Consuntr Electronics pic
and Locomotive Software Ltd.
Cursor
BASIC
eady
1.8
Pagina F1.2
FUNDAMENTOS
Para evitar esfuerzos innecesarios de vision, ajusta el mando del
brillo BRIGHTNESS hasta que la pantalla muestre una imagen con
brillo idoneo para la vista, sin resplandecer ni presentar las letras
borrosas o sin nitidez.
Tambien deberas ajustar el mando de contraste CONTRAST a la
minima posicion que le permita una vision comoda.
El control de sincronismo vertical del GT64 esta marcado como
V-HOLD, y deberas ajustarlo de manera que el cuadro de la imagen
se mantenga estable y correctamente en el medio de la pantalla.
1.2 El Monitor a Color AMSTRAD CTM640
Saca el monitor de su caja y conecta su cable de alimentacion electrica
a una clavija industrial, conforme a las instrucciones que se posea.
IMPORTANTE
Los hilos conductores de este cable de alimentacion, responden al
siguiente codigo:
Azul: Neutro
Marron: Activo
Si se usa una clavija de 13 Amps (BS1363) se debe insertar un fusible
de 5 Amps. El fusible de 13 amperios provisto en estas clavijas
NO DEBE US ARSE. Si se usa cualquier otra clase de clavija, debe
seguir insertandose un fusible de 5 Amps en el cirtuito de alimentacion,
sea en la clavija, en el enchufe o en el tablero de distribucion. Como
los colores de los hilos en el cable de alimentacion de los equipos
puede que no concuerden con los colores o marcas de las patillas
de la clavija a emplear, procede de la siguiente forma:
El hilo de color AZUL se conecta al terminal marcado con "N" o
de color NEGRO.
El hilo de color MARRON se conecta al terminal marcado con "L"
o de color R030.
I
Pagina F1.3
*
FUNDAMENTOS
ADVERTENCIA
Desconecte el enchufe de la red cuando el Monitor se encuentre
f uera de uso. No se requieren conexiones en la parte interna del
Monitor, por lo tanto no intente tener acceso a las partes internas
de su equipo.
El ordenador debera ser colocado enfrente del Monitor en una mesa
apropiada y que se encuentre cercana a algun enchufe de red con
suministro de corriente. Como se muestra en la Fig. 1, conecta
el cable con la clavija mas grande (6 pines DIN) del Monitor al enchufe
hembra marcado MONITOR en la parte posterior del ordenador.
Conecta el cable del Monitor con enchufe mas pequeno (corriente
continua 5Volt) al enchufe marcado 5V D.C. en la parte posterior
del ordenador.
Asegurate que el boton POWER del Monitor se encuentre en la posicion
OFF (apagado). Conecta la clavija de red del Monitor al enchufe
de (240 volts) corriente alterna.
Ahora enciende el monitor, y posteriormente el ordenador usando
el interruptor deslizante marcado POWER (energi'a) en el extremo
derecho del ordenador.
El testigo luminoso rojo ON situado en la parte superior central
del teclado del ordenador debera encenderse, y el Monitor mostrar
en la pantalla el siguiente mensaje:
Anstrad 64K Microcomputer (vl)
€>1984 Anstrad Consumer Electronics pic
and Locomotive Software Ltd.
r
cursor
BASIC i.e
Ready
Para evitar esfuerzos innecesarios de la vision, ajusta el mando
de brillo situado en un lateral del monitor y marcado BRIGHTNESS
hasta que la pantalla muestre una imagen con luminosidad idonea
y sin resplandor ni letras borrosas o faltas de nitidez.
Pagina F1.4
r- FUNDAMENTOS
1.3 Modulador/Alimentador AMSTRAD MP1 y un receptor de television
a color (UHF) domestico
El MP1 es un accesorio conveniente y que desearas comprar, si
habitualmente operas tu ordenador CPC464 con el Monitor de Pantalla
Verde GT64. El MP1 te permitira usar el ordenador con un Televisor
a Color Domestico, y por tanto gozar con todas las facilidades de
color que te ofrece tu ordenador CPC464.
Extrae de su caja el Modulador/Alimentador MP1 y conecta una
clavija de corriente de alimentacion al cable del Modulador/Alimentador
conforme a las instrucciones siguientes:
IMPORTANTE
Los hilos conductores de este cable de alimentacion, responden al
siguiente codigo:
Azul: Neutro
Marron: Activo
Si se usa una clavija de 13 Amps (BS1363) se debe insertar un fusible
de 5 Amps. El fusible de 13 amperios provisto en estas clavijas
NO DEBE USARSE. Si se usa cualquier otra clase de clavija, debe
seguir insertandose un fusible de 5 Amps en el cirtuito de alimentacion,
sea en la clavija, en el enchufe o en el tablero de distribucion. Como
los colores de los hilos en el cable de alimentacion de los equipos
puede que no concuerden con los colores o marcas de las patillas
de la clavija a emplear, procede de la siguiente forma:
El hilo de color AZUL se conecta al terminal marcado con "N" o
de color NEGRO.
El hilo de color MARRON se conecta al terminal marcado con "L"
o de color ROJO.
J
ADVERTENCIA
Desconecte el enchufe de la red principal cuando esta unidad se
encuentre fuera de uso.
No se requieren conexiones internas de ningun tipo, por lo tanto
no intente tener acceso al interior de esta unidad de su equipo.
Pagina F1.5 — '
FUNDAMENTOS
Conector 5V DC
TV Domestico
Conector de antena
3) Conector del MONITOR
Figura 2: El MP1 Modulador y Alimentador
EI Modulador/Alimentador MP1 debera ser colocado a la derecha
del ordenador en una mesa apropiada, que se encuentre cerca del
Televisor y a un enchufe del suministro electrico. Como se muestra
en la figura 2, conecta al cable del MP1 la clavija mas grande (6
pines DIN) al enchufe marcado MONITOR en la parte posterior del
ordenador. Conecta el cable del MP1 con la clavija mas pequena
(corriente continua 5 voltios) al enchufe marcado 5V DC, de la parte
posterior del ordenador. Inserta el conector del cable de antena
del MP1 al conector de entrada de antena del Televisor.
Comprueba que el interruptor POWER del ordenador y situado en
el costado derecho, se encuentre en la posicion OFF (apagado); ahora
conecta la clavija de alimentacion MP1 al enchufe de energia electrica
(240 volts corriente alterna).
Ahora reduce el control de volumen del Televisor al mi'nimo; enciende
el Televisor y luego el ordenador usando el interruptor deslizante
situado en el costado derecho del ordenador.
El testigo luminoso rojo situado en la parte superior central del
teclado del ordenador debera encenderse, y ya puedes sintonizar
el televisor hasta recibir la serial de UHF emitida por el ordenador.
Si empleas un televisor con seleccion de canales mediante pulsadores,
presiona el correspondiente a algun canal de reserva o que no usas
habitualmente. Ajusta el control de sintonia conforme a las instrucciones
de fabrica para ese televisor (la senal corresponde aproximadamente
al canal 36). Debes lograr una imagen con el saludo de bienvenida:
L
Pagina F1.6
FUNDAMENTOS
Anstrad 64K Microcomputer (vl)
©1984 Anstrad Consumer Electronics pic
and Locomotive Software Ltd.
BASIC
Ready
1.0
r
CURSOR
Sintoniza el televisor exactamente hasta el punto en que obtengas
la imagen mas nitida. Las letras deberas ser de color amarillo-oro
sobre un fondo azul intenso.
Si el televisor posee un selector de canales del tipo rotativo, gira
la perilla de sintonia hasta obtener la imagen indicada mas arriba
y hasta que esta permanezca perfectamente estable. (Otra vez,
aproximadamente el canal 36).
ADVERTENCIA GENERAL
Para aquellos paises que usen enchufes y clavijas de suministro electrico
con tres tomas y terminales, los cables de alimentacion del Monitor,
Ordenador y Alimentador/Modulador estan dotados de un tercer
hilo conductor con cubierta de color verde para ser conectado a
la tercera patilla de la clavija que debe corresponder a la ytierra"
de la red de energia electrica. En ningun caso se conectara este
cable a ninguno de los dos terminales cuando se empleen clavijas
de dos terminales.
1.* JOYSTICK
El joystick AMSOFT modelo JY1 constituye un artilugio que desearas
tener si usas el ordenador CPC464 con programas de juegos que
incorporen la facilidad de control de movimientos y disparos dentro
del juego. El 3Y1 puede ser conectado a la parte posterior del ordenador
usando el conector hembra de 9 vias marcado USER PORTS (I/O).
El ordenador AMSTRAD CPC464 puede operar simultaneamente
con dos joystick de ese estilo. El segundo de ellos debera ser conectado
al conector hembra, provisto en la peana del primer joystick.
Pagina F1.7
FUNDAMENTOS
CLAVIJA DE JOYSTICK (9 vfas)
JOYSTICK
JY1
AMSOFT
SEGUNDO CONECTOR
JY1 Joystick de control
■1.5 Cinta de Bienvenida
Envuelta en un sobre de polietileno en la caja de tu ordenador, habras
encontrado una cassette conteniendo la "Cinta de Bienvenida". Levanta
la cubierta de la ductora de cintas en cassette presionando la tecla
marcada STOP/EJECT para parar e insertar la cassette con la cinta
de bienvenida en los carriles de soporte, tal y como se muestra
en la figura 3, -asegurandote de que presentas la cara 1, marcada
hacia arriba.
L
Figura 3: La forma correcta de insertar un cassette dentro de la
ductora de cinta magnetica.
Cierra la cubierta hasta que suene el pestillo que indica un encaje
correcto, presiona la tecla de rebobinado, marcada REW hasta que
te cerciores que la cinta esta debidamente colocada en su principio.
Tan pronto como la cinta se detenga, oprimes la tecla STOP/EJECT
y repones el valor inicial en el contador de revoluciones (contadora
000) presionando el boton de restauracion del contador, marcado
COUNTER RESET.
Pulsa la tecla verde de control del teclado, marcada CTRL y AL
MISM© TIEMPO la pequena tecla azul, marcada ENTER en la parte
inferior derecha del teclado numerico separado y situado inmediatamente
al lado de la unidad ductora de cinta.
Pagina F1.8
FUNDAMENTOS
La pantalla respondera con el mensaje:
RUN"
Press PLAY then any key:
Ahora oprimes la tecla de reproduccion, marcada PLAY y situada
en la parte delantera de la ductora de cinta, hasta que se quede
firmemente trabada en su posicion inferior; luego pulsas cualquier
letra, numero, o cualquiera de las dos teclas ENTER, o incluso y
mas comodo, la barra espaciadora. La cinta comenzara a correr,
y despues de un corto perfodo, aparecera en la pantalla el mensaje:
Loading WELCOME 1 block 1
La cinta tardara cerca de 5 minutos en ser cargada y podras observar
que todo marcha correctamente a traves de la pantalla, pues el
numero de "bloque" cambiara de 1 a 2, a 3, etc. hasta que la cinta
se detenga. En este momento, el programa Welcome ya cargado
en la memoria del ordenador, comenzara a ser ejecutado por la
maquina. Simplemente acomodate en un sillon y observa. El programa
"rula" continuamente, asi' que cuando hayas terminado de observarlo,
presiona la tecla de escape, marcada ESC dos veces seguidas. Eso
hace que se detenga el programa, y ya puedes ahora sacar la cinta,
darla la vuelta y ponerla por la cara 2.
Despues de cambiar la cinta a la cara 2, una vez mas, recuerda
presionar la tecla REW en la ductora de cinta, para asegurarte de
que la cinta esta colocada al principio del recorrido.
Pulsa la tecla CTRL y AL MISMO TIEMPO, la pequena tecla ENTER
en la parte inferior derecha del teclado numerico. La pantalla respondera
como antes, con el mensaje:
RUN"
Press PLAY then any key:
para indicar que esta lista para cargar el programa grabado en esa
cara de la cinta.
Ahora oprime la tecla PLAY hasta que se enganche abajo, y luego
pulsas cualquiera de las teclas. Todo es igual que antes. La cinta
comenzara a correr y despues de un corto perioro veras el mensaje
Loading WELCOME 2 block 1
que te indica que esta "cargando" el programa de bienvenida, (el
bloque 1 de esa cara).
Sigue las instrucciones dadas en pantalla, y el programa te invitara
a que participes escribiendo diversas instrucciones, mas complejas
a medida que va progresando el programa y tu.
— Pagina F1.9 -
FUNDAMENTOS
1.6 CARGANDO OTRAS CASSETTES DE PROGRAMAS
LA CINTA DE BIENVENIDA SOLO PUEDE SER CARGADA Y SUS
PROGRAMAS "EJECUTADOS" en la forma descrita en la seccion previa
(1.5). Los programas en BASIC -sin protecciones especiales- podran
ser cargados con los siguientes metodos alternatives. Rebobina la
cinta que has insertado en la unidad ductora de cinta, presionando
la tecla REW hasta que la cinta se detenga; que sera el momento
en que deberas oprimir la tecla STOP/EJECT.
Restaura las condiciones iniciales en el sistema (los angloparlantes
llaman RESET a esta operacion), pulsando sucesivamente las siguientes
teclas: CTRL, SHIFT y ESC - pero manteniendo presionadas las
dos primeras hasta que pulses la tecla ESC. La pantalla se limpiara
y en pantalla reaparecera el mismo mensaje de salutacion que aparece
nada mas poner en marcha el ordenador.
La palabra ENTER en las siguientes instrucciones, indica que debes
pulsar cualquiera de las dos teclas ENTER - no significa que debas
escribir, letra por letra la palabra ENTER. El simbolo " se obtiene
tambien oprimiendo cualquier tecla SHIFT simultaneamente con
la tecla 2 de la fila superior del teclado.
Escribe:
Load '*" ENTER
El ordenador te pide:
Press PLAY then any key:
Ahora presionas la tecla PLAY en la fila de teclas de la parte delantera
del "almacenador" de datos hasta que se enganche firmemente y
luego cualquiera de las del teclado, incluso la barra espaciadora.
La cinta comenzara a pasar y despues de un corto periodo, veras
aparecer en la pantalla este mensaje.
Loading <nornbre del programa> block 1
Los numeros de bloque continuaran aumentando hasta que la cinta
haya terminado de cargarse, momento en que aparecera:
Ready
...como mensaje escrito en la pantalla, para indicarte que esta dispuesta
a recibir tus ordenes.
Pagina F1.10
FUNDAMENTOS
Alternativamente, puedes especificar el nombre del programa que
desees cargar. Para hacerlo, escribes por teclado
Load " titulo " ENTER
El ordenador te pedira:
Press PLAY then any key:
Ahora presionas la tecla PLAY para que la ductora de cinta comience
a trasvasar a la memoria el programa grabado en la cinta, y luego
pulsas alguna tecla con cualquier letra, numero, cualquier tecla
ENTER, o incluso la barra espaciadora.
La cinta comenzara a moverse. Si el programa que has pedido al
ordenador que cargue no se encuentra al comienzo de la cinta, el
ordenador lo buscara a lo largo de toda ella hasta encontrar uno
cuyo titulo sea exactamente igual al que le has escrito en ese comando.
Por tanto, deberas ser muy cuidadoso al escribir el titulo del programa
en forma correcta. Si mientras el ordenador busca ese titulo a lo
largo de la cinta se encuentra con otros programas con titulo distinto
al que le has mandado cargar, te mostrara el siguiente mensaje
en pantalla:
Found <otro tltulo> block 1
que indica que ha encontrado un programa con ese titulo distinto.
El ordenador no cargara ninguno de esos programas, pero persistira
en la busqueda del que le has mandado, a lo largo de toda la cinta'
hasta que encuentre el que posee un titulo exacto al que has escrito,
o hasta que pulses la tecla ESC que le obliga a terminar la busqueda
en cinta.
Cuando ya ha encontrado el programa, veras aparecer en la pantalla
el mensaje:
Loading <titulo> block 1
Para comunicarte que ha comenzado la operacion de carga del programa.
Los numeros de bloque continuaran aumentando sucesivamente hasta
que la cinta haya terminado la carga del programa, momento en
el que mostrara en pantalla el mensaje:
Ready
para indicar que esta dispuesta a cumplimentar otro comando.
Pagina Fl.ll
FUNDAMENTOS
En ese momento, puedes escribirle:
run ENTER
...y el programs que acaba de cargarse, comenzara a ser ejecutado.
Si ya existia en memoria un programa, sera automaticamente borrado
cuando se produzca la carga de otro procedente de la cinta.
Para que el programa sea ejecutado directamente, inmediatamente
despues de que haya sido cargado por el ordenador, puedes teclear:
RUN "titulo" ENTER
para obligarle no solo a que lo cargue, sino a que lo ejecute
inmediatamente despues. El ordenador te respondera con:
Press PLAY then any key:
que es un mensaje ya conocido que te solicita que presiones la tecla
PLAY del equipo cassette y luego cualquiera de las letras, numeros,
del teclado, o bien cualquiera de las teclas ENTER, o incluso la
barra espaciadora. El ordenador comenzara a buscar el programa
que le has pedido, y cuando lo encuentre lo trasvasara de la cinta
a la memoria y lo ejecutara sin que tengas que anadir ningun otro
comando por el teclado. Podras detener la operacion en cualquier
momento, pulsando la tecla ESC, como ya conoces.
1.7 Cargando programas previamente grabados en cinta
Las instrucciones dadas hasta ahora te permitiran cargar cualquiera
de los muchos titulos de programa disponibles para el ordenador
CPC464.
Sin embargo, consulta siempre por favor, las instrucciones especi'ficas
de carga que vienen impresas en cada uno de los cassettes de programas.
1.8 Guardando programas en cinta
Todo porgrama puede ser guardado en cinta, mediante el comando
BASIC SAVE, para ser usado posteriormente. Inserta una cinta en el
equipo cassette, en la forma que te hemos indicado, y cierra la
cubierta. (La lengiieta de proteccion que impide la grabacion de
las cintas, y que esta situada en la parte posterior del propio cassette
que contiene la cinta, no debe haber sido quitada).
* — Pagina F1.12
FUNDAMENTOS
Oprime la tecla REW para rebobinar la cinta y colocarla al principio,
recordando pulsar la tecla STOP/EJECT cuando se detenga la cinta.
Luego tecleas simplemente:
save "<titulo del programa> " ENTER
que es el comando necesario para que el ordenador trasvase a la
cinta el programa que tiene en memoria, y quede en la cinta con
el titulo que has resefiado en la instruccion.
El ordenador te respondera con el mensaje:
Press REC and PLAY then any key:
Para indicarte que en este caso han de pulsarse las teclas de grabacion
y de marcha al mismo tiempo, y de manera que ambas se queden
enganchadas firmemente en su posicion mas baja; y que luego pulses
cualquiera de las letras, numeros, teclas ENTER, o incluso barra
espaciadora para que comience la operacion.
Despues de haberlo hecho, el ordenador te mostrara en pantalla
el mensaje:
Saving <tltulo del programa> block 1
para indicar que ha comenzado la operacion de guardar en la cinta
el programa que tenia en memoria y con el titulo que le has dado.
Cuando haya terminado de grabar el programa, la cinta se detendra
y veras aparecer en pantalla la palabra: Ready. En ese momento
puedes pulsar la tecla STOP/EJECT de tu equipo cassette, porque
tu programa ya se encuentra depositado en la cinta.
Ten en cuenta que no podras almacenar programas en cinta que
hayan sido previamente grabados por las empresas distribuidoras
con programas de juegos o de cualquier tipo, cargandolos previamente
en tu ordenador y aunque las cintas que vayas a usar esten en bianco.
Todos esos programas se encuentran protegidos para impedir que
se saquen copias sin autorizacion.
Pagina F1.13
*
AMSTRAD CPC464
Fundament os 2:
FAMILIARIZACION
CON EL TECLADO
Explicaremos ahora las funciones de algunas de las teclas del ordenador.
Aquellos que posean experiencia previa con equipos de proceso de datos
pueden saltarse esta seccion.
ENTER
Existen dos teclas marcadas ENTER en tu ordenador. Cada una
de estas teclas "envian adentro" la informacion que has tecleado,
indicando al ordenador que ya has terminado de darle la instruccion
y que puede pasar a tramitarla. Despues de pulsar la tecla ENTER,
el cursor se coloca al principio de la siguiente linea de la pantalla.
Todas y cada una de las instrucciones y comandos que le des al
ordenador, deben ser terminadas pulsando la tecla ENTER, para
que irigrese ese comando o instruccion y pueda ser cumplimentada.
De ahora en adelante, solo mostraremos la pulsacion de esa tecla
ENTER para destacar que debe ser pulsada despues de cada instruccion
o linea de programa.
DEL
Esta tecla se usa para borrar o "delectar" el caracter situado
inmediatamente; a la izquierda del cursor; es decir, para suprimir
una letra, numero, o si'mbolo que sea innecesario. Escribe por ejemplo
abed y veras que la ultima letra tecleada, la d esta situada
inmediatamente a la izquierda del cursor. Si decidieras que esa
letra d ya no era necesaria, te bastaria pulsar la tecla DEL una
sola vez para comprobar que el cursor retrocede a la izquierda,
suprimiendo de la pantalla dicha letra. Si mantienes pulsada la tecla
DEL el tiempo suficiente, tambien irian sucesivamente borrandose
de la pantalla con retroceso del cursor en cada caso, las letras cba
por ese orden.
SHIFT
Existen dos teclas de turno o cambio, marcadas con la palabra SHIFT.
Pulsando cualquiera de ellas y manteniendola pulsada mientras que
al mismo tiempo se oprime una tecla correspondiente a una letra,
lo que aparece en la pantalla es esa letra pero en mayusculas. Escribe
por ejemplo la letra a y luego vuelve a pulsar la tecla a simultaneamente
con la pulsacion de la tecla SHIFT. Veras que en pantalla aparece
lo siguiente:
aA
Pagina F2.1
FUNDAMENTOS
Escribe ahora unos pocos espacios en bianco, manteniendo pulsada
la barra espaciadora. Ensaya ahora lo mismo usando las teclas marcadas
con numeros que estan situadas en la fila superior del teclado; escribe
por ejemplo el numero 2 simplemente pulsando la tecla marcada
con 2, y luego pulsa esa misma tecla pero simultaneamente mantienes
pulsada la tecla SHIFT. Comprobaras que ahora aparece en pantalla
el simbolo de las comillas, que esta situado por encima del 2 dentro
de la misma tecla. Por tanto en pantalla tendras:
2"
Puedes ahora comprobar lo que pasa cuando se mantiene pulsada
la tecla SHIFT si se pulsa cualquier otra tecla marcada con un caracter.
Haz experimentos, tecleando cualquiera de esas teclas de caracteres
y pulsando unas veces simultaneamente la tecla SHIFT y otras veces
sin pulsarla. Cuando se pulsa, comprobaras que es el "turno" de
las mayusculas o de los caracteres situados en la parte superior
de cada tecla.
CAPS LOCK
Pulsando esta tecla una sola vez, se logra que las teclas correspondientes
a las letras que hay en el teclado pasen a enviar siempre al ordenador
el simbolo correspondiente a las mayusculas. Decimos que el teclado
esta "trabado" o enclavado en mayusculas. A partir del momento
en que ha pulsado la tecla CAPS LOCK, ten en cuenta que todas
las letras seran mayusculas, pero para conseguir con las otras teclas
el signo que figura en la parte superior, tendras que seguir pulsando
simultaneamente la tecla SHIFT.
Veamos un ejemplo. Pulsa la tecla CAPS LOCK y luego sucesivamente
las marcadas con los simbolos:
abcdefl23456
Observaras que en pantalla lo que aparece es:
ABCDEF123456
que indica que todas las teclas de letras envian a la pantalla y al
ordenador esas mismas letras pero en mayuscula; mientras que las
teclas con numeros no envian los simbolos marcados en la parte
superior de la tecla.
Pero si ahora vuelves a pulsar sucesivamente las teclas:
abcdefl23456
pero manteniendo pulsada simultaneamente y cada vez la tecla SHIFT,
lo que obtienes en pantalla es:
ABCDEF!"#$?o&
tal y como te hemos comentado.
Pagina F2.2
FUNDAMENTOS
Si quisieras volver al modo anterior con las letras en minuscula,
solo tienes que pulsar otra vez la tecla CAPS LOCK. Esta tecia
actua como un "basculador", cambiando de modo cada vez que se
pulsa.
Si deseas teclear letras en mayuscula y los si'mbolos situados en
la parte superior de las otras teclas, sin tener que mantener
constantemente pulsada la tecla SHIFT, tambien lo puedes lograr
pulsando simultaneamente la tecla CTRL y la tecla CAPS LOCK.
Despues de ello, si pulsas sucesivamente las teclas marcadas:
abcdefl23456
obtendrias en pantalla:
ABCDEF!"#$?o&
Y sigue siendo posible teclear numeros en esta situacion, incitada
por la pulsacion simultanea de CTRL y CAPS LOCK, si empleas
las teclas numericas colocadas en el teclado que hay a la derecha,
separado del teclado principal.
Manteniendo pulsada la tecla CTRL y volviendo a pulsar simultaneamente
la tecla CAPS LOCK, volveras de nuevo al modo en que estabas
previamente: sea con las mayusculas trabadas, o en minusculas.
Por supuesto, que si has vuelto al modo de mayusculas trabadas,
el efecto basculador de la tecla CAPS LOCK hara que a la siguiente
pulsacion de esa tecla, vuelvas al modo minusculas.
CLR
Esta tecla se usa para borrar ("influido por el ingles, diriamos CLAREAR")
para borrar el caracter situado en la misma posicion que el cursor.
Teclea por ejemplo ABCDEFGH. El cursor terminara situado
inmediatamente a la derecha de la ultima letra escrita, la H. Ahora
pulsa la tecla de desplazamiento a izquierda del cursor (■«-), y hazlo
cuatro veces seguidas. El cursor se movera cuatro posiciones hacia
la izquierda, colocandose encima mismo de la letra E.
Observa que la letra E todavia es visible dentro del cursor. Si ahora
pulsas la tecla CLR una sola vez, notaras que desaparece la letra
E y que las letras FGH se desplazan un espacio hacia la izquierda,
con lo que ahora es la letra F la que aparece dentro del cursor.
Si pulsas ahora una segunda vez la tecla CLR desaparecera esa
letra F y manteniendola pulsada, veras como se van borrando
sucesivamente las letras y desplazandose hacia la izquierda.
Pagina F2.3
FUNDAMENTOS
ESC
Esta tecla se usa para ESCAPAR de la funcion que el ordenador
este desarrollando en ese momento. Pulsando una sola vez la tecla
ESC, solo se consigue que el ordenador realice una pausa en el desarrollo
de la funcion vigente, y que la continue tan pronto como sea pulsada
cualquier otra tecla distinta de ESC.
Si en esa situacion pulsas ESC, habran sido dos pulsaciones sucesivas
de la tecla ESC, lo que tiene como efecto que el ordenador termine
y deje definitivamente la funcion que estaba desarrollando en ese
momento. El ordenador pasara entonces al modo normal en que
espera que le dictes algun otro comando o instruccion.
Pulsa ahora por dos veces consecutivas la tecla ESC.
IMPORTANTE
Cuando llegues al borde derecho de la imagen, porque hayas tecleado
mas de 40 caracteres consecutivos, el siguiente caracter que teclees
aparecera automaticamente en la siguiente li'nea de la pantalla y
situado en el extremo izquierdo de esa li'nea. Eso significa que NO
DEBES pulsar ENTER cuando estes cerca del final de una linea,
tal y como se acostumbra a hacer en las maquinas de escribir, sino
que debes continuar tecleando, que automaticamente el ordenador
pasara a la li'nea siguiente cuando lo necesite.
Si no lo hicieras, y pulsaras intempestivamente la tecla ENTER,
el ordenador mostrana su desacuerdo -habitualmente mediante el
mensaje: Syntax error, ya sea en el momento en que tecleas
o posteriormente cuando oases ese programa.
Syntax Error
Si aparece en pantalla el mensaje: Syntax error, es senal que
el ordenador no entiende el comando o instruccion que le acabas
de teclear. Por ejemplo, si escribes:
printt ENTER
Aparecera en pantalla el citado mensaje de error sintactico.
syntax error
Ese mensaje aparece porque el ordenador no comprende la palabra
"printt" (debido a la doble t).
Si cometes una equivocacion en una li'nea de un programa, de la
misma clase que antes, como por ejemplo:
10 printt "abc" ENTER
no aparecera el mensaje de error sintactico hasta que esa instruccion
vaya a ser cumplimentada por el ordenador en el momento de ejecutar
el programa.
Pagina F2.4
FUNDAMENTOS
Lo puedes comprobar, tecleando ahora:
run ENTER
Veras que en pantalla aparece el mensaje:
Syntax error in 10
Qo printt "abc"
que te indica un error sintactico como antes, pero sefialandote ademas
el numero de lfnea en que ha detectado el error, y mostrando en
pantalla toda esa linea del programa, juntamente con el cursor de
"edition" situado sobre el primer caracter de esa linea, para indicarte
que espera la correction.
Pulsa en esta situation la tecla de avance del cursor a derecha, marcado
(■*) hasta que el cursor se situe encima de una de las t de dicha palabra
printt. Basta pulsar la tecla CLR para que desaparezca esa t que
sobra. Ahora no olvides que hasta que pulses la tecla ENTER, el ordenador
no se da por enterado que has corregido esa linea.
Despues de hacerlo, ya puedes repetir el comando run ENTER para
comprobar que ya el ordenador acepta esa instruction, la interpreta
y cumplimenta, y por tanto, expone en pantalla las letras abc.
Una introduccidn a las palabras
clave del BASIC AMSTRAD
En el capftulo 8, encontraras una description ordenada de todas las
palabras claves aceptadas en el lenguaje "BASIC AMSTRAD". En esta
section te presentamos algunas de esas palabras clave que se usan
mas frecuentemente.
CLS
Teclea esa palabra els y veras como se LIMPIA la pantalla. La
palabra CLS la puedes escribir como todas las demas palabras reservadas
usando letras mayusculas o minusculas, y siempre pulsando para terminar
todo comando la tecla ENTER. Notaras que despues de quedarse la
pantalla en limpio, aparece la palabra habitual Ready, con el cursor ■
situado en la esquina superior izquierda de la pantalla, indicandote
que esta dispuesto a recibir nuevas ordenes.
Pagina F2.5
FUNDAMENTOS
PRINT
Esta palabra clave se usa habitualmente para hacer que el ordenador
EXPONGA en pantalla lo que tu deseas, sean palabras, datos o figuras.
Teclea por ejemplo, el siguiente comando:
print "ho la" ENTER
Y veras que en la pantalla aparece la palabra:
hola
porque el ordenador ha entendido que debia emitir hacia la pantalla
lo que estaba incluido entre comillas.
Las comillas (") se usan para indicar al ordenador que lo que debe
considerar como dato, y en este caso exponerlo en pantalla, es lo
que esta incluido dentro de las comillas. En este caso fue la palabra
hola, y cumplimento ese comando tan pronto como pulsaste la tecla
ENTER. Escribe ahora pis ENTER para dejar limpia la pantalla.
RUN
El ejemplo previo nos ha mostrado como cumplimenta el ordenador
un comando de forma inmediata. Para que no ejecute inmediatamente
lo mandado, debemos preceder nuestro mandato de un numero de
linea cualquiera. En ese caso, el ordenador no cumplimenta inmediatamente
lo mandado, sino que lo considera como una INSTRUCCION que debe,
de momento, almacenar en su memoria y que mas tarde le diremos
que hacer con ella. Ese numero caracteriza a cada instruccion y le
sirve ademas al ordenador para colocarlas en su memoria segun el
orden ascendente de esos numeros. Un programa es simplemente una
serie de instrucciones almacenada en la memoria del ordenador, y
no se ejecuta hasta que le mandamos que lo ejecute, usando el comando
RUN.
Escribe por ejemplo la instruccion:
10 print "hola" ENTER
y pulsas para terminarla la tecla ENTER.
Observa que cuando pulsaste ENTER, el ordenador no escribio en
pantalla la palabra hola, porque lo que tecleaste lo interpreto como
una instruccion y lo tiene simplemente almacenado en su memoria.
Es un programa de una sola linea. Si ahora le das, es decir, le tecleas
el comando:
run ENTER
veras como aparece en pantalla la palabra hola, como resultado
de haber ejecutado ese programa.
Pagina F2.6
'V
m
m
m
#
+
*
*
m
#
•
FUNDAMENTOS
Te queremos hacer notar que la palabra PRINT se usa continuamente
en los programas, por lo que puedes abreviarla pulsando simplemente
la tecla de interrogacion, situada en la parte superior de la tecla
marcada con el si'mbolo / .
Por ejemplo, puedes escribir abreviadamente:
10 ? "ho la" ENTER
LIST
Despues de que el programa haya sido almacenado en la memoria
del ordenador, es posible comprobar toda la serie de instrucciones
que lo forman, sacando un LISTADO del programa. Escribe por ejemplo:
list ENTER
y en la pantalla veras la unica linea de nuestro programa:
10 PRINT "hola"
Observa que la palabra PRINT esta ahora en mayusculas, a pesar de
haberla escrito en minusculas. Eso significa que el ordenador no solamente
ha aceptado esa palabra como una palabra clave en BASIC, sino que
la ha transformado y la ha escrito en mayusculas.
Da el comando CLS para limpiar la pantalla, y ten en cuenta que solo
es la pantalla la que se ha quedado en limpio mediante el comando
CLS; el programa continua estando en memoria, y lo puedes comprobar
volviendo a pedir al ordenador que lo liste.
GOTO
La palabra clave GOTO le dice al ordenador que VAYA desde la linea
que se encuentra hasta la linea cuyo numero se resefia en esa instruccion.
Se usa (cada vez menos) para dar un salto progresivo o regresivo en
el numero de instruccion que se ejecutara a continuacion.
Si por ejemplo tecleas:
10 print "hola" ENTER
20 goto 10 ENTER
y luego le pides que ejecute ese programa, mediante el comando:
run ENTER
veras que el ordenador escribe continua y sucesivamente en la pantalla
la palabra hola, colocandolas una detras de otra y en el extremo
izquierdo de la imagen. Para detener este programa, puedes hacerlo
como ya te hemos mencionado, pulsando la tecla ESC una sola vez.
Para que vuelva a comenzar de nuevo, te basta pulsar cualquier tecla
distinta de ESC. Para pararlo nuevamente de forma definitiva, y poder
escribir otras instrucciones nuevas, pulsa dos veces la tecla ESC.
Pagina F2.7 —
FUNDAMENTOS
■mm
#
Teclea ahora:
els ENTER
para dejar la pantalla en limpio.
Para verla palabra ho la escrita continuamente en cada lihea, una
vez detras de otra y rellenando por tanto la totalidad de la pantalla,
puedes modificar el programa anterior y usar el signo punto y coma
(;) despues de las comillas de cierre. Es decir, debes escribir:
10 print "hola";
20 goto 10 ENTER
run ENTER
ENTER
•
•
Observa que el signo punto y coma (;) es interpretado por el ordenador
como que le pides que escriba el siguiente caracter inmediatamente
detras del anterior. ESCAPA de este programa pulsando dos veces
la tecla ESC. Ahora cambia nuevamente la lihea 10, colocando esta
vez el signo coma (,) en lugar del punto y coma anterior, e inmediatamente
detras de las comillas de cierre. Es decir, debes escribir:
10 print "hola",
run ENTER
ENTER
Veras que el signo de coma en una instruccion PRINT, es interpretado
por el ordenador como que debe escribir el siguiente caracter (o serie
de caracteres) 13 posiciones mas alia de donde haya escrito el primero
de la serie de caracteres anterior. Esta facilidad se aprovecha para
exponer en pantalla los datos tabulados en columnas. Observa sin embargo,
que si el numero de caracteres que compone una serie dada, excede
de 12, el siguiente caracter seri'a desplazado hacia delante otras 13
columnas, situandose por tanto en la columna numero 26.
Otra vez, escapa de ese programa pulsando la tecla ESC dos veces
consecutivas. Pero ahora, para que la memoria del ordenador quede
completamente "en bianco" manten pulsadas sucesiva y simultaneamente
las teclas SHIFT, CTRL y ESC en ese mismo orden, con lo que el
ordenador se restaurara a si' mismo a las condiciones iniciales de
funcionamiento.
INPUT
Esta instruccion se usa para hacer saber al ordenador que al
cumplimentarla debe esperar a que se le IMPONGA un dato por teclado.
Por ejemplo, cuando en el programa se hacen preguntas por pantalla
y el usuario le responde por teclado. Escribe por ejemplo, el siguiente
programa:
•
10 input "que edad tienes"; edad ENTER
20 print "no
run ENTER
aparentas tener "; edad
an os
ENTER
Pagina F2.8
FUNDAMENTOS
En la pantalla, cuando rules el programa, aparecera la pregunta:
tque edad tienes?
Contestale adecuadamente, que sera el dato IMPUESTO, y lo terminas
pulsando ENTER. Si tu edad fuera de 18 anos, el ordenador sacaria
por pantalla el mensaje:
no aparentas tener 18 anos.
Este ejemplo nos demuestra el uso de la instruccion INPUT, y de como
el dato tecleado se IMPONE como el valor de una variable numerica,
en este caso es la que tiene por nombre edad, tal y como esta resenada
al final de la li'nea 10. Observa que a partir de ahora, el ordenador
asociara a la variable con nombre edad el numero que le tecleaste
en el momento de sacar en pantalla la pregunta correspondiente, y
que ese mismo dato impuesto es el que expone posteriormente cuando
cumplimenta la instruccion PRINT de la linea 20 donde figura esa
variable numerica llamada edad. Aunque nemos usado como nombre
de variable la paiabra edad en este ejemplo, podrfamos igualmente
haber usado en forma mas breve otro nombre para la variable, como
por ejemplo la letra b simplemente.
Restaura el ordenador para borrar el programa que tienes en memoria
(teclas CTRL, SHIFT y ESC. Si hubieras querido que el dato impuesto
estuviera formado por una serie cualquiera de caracteres cualesquiera
(letras, numeros o signos), deberias usar el signo dolar ($) al final del
nombre de la variable, para indicarle al ordenador que le vas a imponer
por teclado un "LITERO" en lugar de un "NUMERO" (el ordenador
tornara ese dato "literalmente" tal como se lo escribas).
Teclea el siguiente programa: (y observa que en la li'nea 20 debes colocar
un espacio en bianco despues de la a de hola y antes de la y de yo).
10 input "como
20 print "hola
run ENTER
te
llamas" ;
nombre*
nombre* ENTER
yo me llamo ftlvaro'
ENTER
Luego veras en pantalla la pregunta:
ccomo te llamas?
Teclea tu nombre en ese momento, dato que sera IMPUESTO como
valor de la variable que has llamado nombre$ en esa instruccion 20.
Si tu nombre es Pepe, veras que aparece en la pantalla la frase:
hola Pepe yo me llamo Alvaro
Aunque en el ejemplo anterior hemos usado nombre$ para designar
esa variable LITERAL (tambien llamada de cadena o sarta, o ristra)
podrfamos haber usado simplemente una letra como por ejemplo a$.
Es el signo dolar al final lo que distingue a las variables numericas
de las variables literales.
Pagina F2.9
FUNDAMENTOS
Vamos ahora a combinar estos dos ejemplos en un solo programa. Restaura
el ordenador a sus condiciones iniciales pulsando CTRL, SHIFT y ESC,
y luego tecleas la siguiente instruccion:
5 els ENTER
10 input "co«io te llamas"; a* ENTER
20 input "que edad tienes"; b ENTER
30 print "te felicito ";a* " no aparentas tener";
b " an os" ENTER
run ENTER
En este programa usamos dos variables, a$ para el nombre que sera
un lftero, y b para la edad, que sera un numero. En la pantalla aparecera
primero:
ccokio te llamas?
En este momento, puedes teclear tu nombre (v.g. Pepe) y luego pulsar
ENTER. Con eso, el ordenador pasara a la siguiente instruccion por
lo que en pantalla aparecera:
cque edad tienes?
Teclea ahora tu edad (v.g. 18) y luego pulsas ENTER. Con esto, el
ordenador pasara a la siguiente instruccion, por lo que en pantalla
aparecera:
te felicito Pepe no aparentas tener 18 anos
y con esto se termina la ejecucion de este sencillo programa.
EDICION DE PROGRAMAS
Si cualquiera de las lineas del programa ha sido tipograf iada
incorrectamente, provocara un error sintactico u otra clase de error,
y sera necesario revisar y corregir (editar es la palabra que usamos)
esa linea en lugar de teclearla de nuevo. Para mostrarte la edicion
de programas, puedes teclear el programa anterior pero en forma
incorrecta.
Ensaya por ejemplo con lo siguiente:
5 clss
10 input "cbmo te llamas"; a* ENTER
20 input "que eda tienes"; b ENTER
30 print "debo felicitarte "; a* ;" que no aparentas
tener ": b ;" anos " ENTER
Pagina F2.10
FUNDAMENTOS
Hay tres equivocaciones en el programa anterior:
En la linea 5 pusimos c 1 s s en lugar de c 1 s.
En la lfnea2o escribimos fedaf en lugar de edad.
En la linea 30 olvidamos colocar un bianco entre el final de la
palabra advertirte y las correspondientes comillas de cierre.
Hay tres metodos para editar un programa. El primero es simplemente
volver a leclear correctamente la linea. Cuando se teclea una linea
con el mismo numero de una ya existente, el ordenador interpreta
que simplemente queremos sustituir la que ya existe por la que ahora
tecleamos. En segundo lugar, esta el metodo propiamente del ordenador
en modo edicion, y finalmente podemos usar el metodo de copiar lo
que aparece en pantalla mediante movimientos del cursor, como ya
veremos.
Metodo de Edicion
Para corregir la equivocacion de la linea 5, teclea el comando:
edit 5 ENTER
El ordenador entra en el modo de edicion, y nos muestra dicha linea
5 con el cursor situado directamente encima del 5. Para quitar la s
extra de la palabra clss, desplaza el cursor hacia la derecha mediante
la teCla de avance de cursor marcada (-»■) hasta que se situe sobre
cualquiera de las eses, y luego pulsas la tecla CLR. Veras que la s
desaparece de la pantalla (y de la memoria). Pulsa ENTER para indicar
que la operacion ha terminado, y lista el programa para ver que esa
instruccion ha sido corregida. Es decir, teclea
list ENTER
y veras que la linea 5 aparece ya corregida (tambien diriamos editada).
Metodo de Copia moviendo el cursor
Para corregir las equivocaciones de las lineas^O y 30, puedes hacerlo
manteniendo pulsada la tecla SHIFT y pulsando la tecla de subida del
cursor, marcada (+), hasta que el "cursor que copia" se situa en el
principio mismo de la linea-3r0. Veras que el cursor principal no se
ha desplazado, sino que tienes ahora dos cursores en la pantalla. Pulsa
ahora la tecla de COPIAR marcada con la palabra COPY, hasta que
el cursor de copiado se situe entre el espacio en bianco entre edad
y las comillas de cierre. Observaras que la linea 20 se estaba tambien
escribiendo en la ultima linea de la pantalla y que el cursor principal
se detiene en la columna homologa a la del cursor de copia. Teclea
ahora la letra d que falta, y observa como solo aparece en la ultima
linea. Y ademas que el cursor principal si' se desplaza una posicion
a la derecha, pero el cursor de copiar permanece donde estaba.
Pagina F2.ll
: iap
FUNDAMENTOS
Pulsa ahora la tecla COPY hasta que copies la totalidad de esa li'nea
20; luego pulsas ENTER para indicar que la operacion ya VALE, y
esa nueva li'nea ^JD corregida sustituye en la memoria a la anterior.
El cursor de copia desaparece y el cursor principal se coloca por si'
mismo bajo la nueva li'nea^O.
Para corregir la segunJa equivocacion, manten pulsada la tecla SHIFT
y pulsa la tecla de subida del cursor, marcada (+) hasta que el cursor
de copiar aparezca situado al principio mismo de la li'nea 30. Pulsa
la tecla COPY hasta que situe el cursor de copiar sobre las comillas
de cierre que van inmediatamente detras de la palabra advertirte.
Ahora simplemente pulsa la barra espaciadora una vez. Con eilo se
insertara un espacio, como puedes comprobar en la li'nea que se esta
escribiendo en la parte inferior. Luego continua copiando con la tecla
COPY hasta que completes toda la li'nea 30. Pulsa la tecla ENTER
para decir que vale, y ya puedes listar el programa y comprobar que
todo esta corregido en la memoria del ordenador, lo que puedes hacer
simplemente tecleando LIST ENTER.
Restaura el ordenador pulsando las teclas CTRL, SHIFT y ESC.
•
•
•
IF THEN
Vamos ahora a ampliar el programa anterior con el uso de instrucciones
que solo SI se cumple una determinada condicion, son PUES
cumplimentadas por el ordenador.
Teclea lo siguiente, observando que hemos anadido dos si'mbolos, a
saber, el signo MENOR QUE, marcado < y situado al lado de la tecla
M, y el signo MAYOR QUE, marcado > y situado a continuacion de
la tecla anteriormente citada.
5 els ENTER
10 input "c6mo te llamas"; a* ENTER
20 input "que edad tienes"; edad ENTER
30 if edad < 13 then 60 ENTER
40 if edad < 20 then 70 ENTER
50 if edad > 19 then 80 ENTER
60 print "aun " ; a*;" no eres un adolescente con
tus "; edad; " anos":end ENTER
70 print "ya "; a$;" eres un adolescente a tus":
edad;" anos":end ENTER
80 print "comp render as
un adolescente con tus
a$; " que ya
edad;" anos 1
no eres
ENTER
Pagina F2.12
FUNDAMENTOS
Para comprobar que lo has tecleado correctamente, pide al ordenador
que liste el programa y luego teclea:
list ENTER
Luego vete contestando las preguntas sugeridas por el ordenador y
viendo lo que sucede.
Analicemos ahora los efectos que los comandos IF...THEN tienen en
un programa. Hemos anadido tambien la palabra end al final de las
li'neas 60 y 70. Obviamente, este comando end se emplea para que
el ordenador TERMINE de ejecutar el programa. Si no estuviera ese
comando end en la li'nea 60, el programa continuaria rulando y llevando
a cabo las instrucciones resenadas en las li'neas 70 y 80.
De igual manera, si no estuviera el comando end en la li'nea 70, el
programa continuaria pasando y cumplimentando las instrucciones de
la li'nea 80. El signo dos puntos (:) antes de la palabra end separa este
comando del comando anterior. Los dos puntos se usan para poder
incluir dos o mas instrucciones dentro de una misma li'nea del programa;
se tiene lo que llamamos li'nea multi-instruccion. Tambien hemos anadido
la li'nea 5 para limpiar la pantalla al inicio del programa. Haremos
eso mismo a partir de ahora para que los resultados aparezcan mas
esteticos.
Otras palabras asociadas con la instruccion IF...THEN son ELSE, OR
y GOTO. El uso de esas palabras dentro de esta clase de instrucciones
se te hara mas obvio a medida que progreses en el estudio de esta
Gui'a.
Restaura el ordenador pulsando las teclas CTRL, SHIFT y ESC.
FOR...TO...NEXT
Vamos ahora a mostrar el uso de los comandos FOR y NEXT, que nos
permiten obligar al ordenador que repita la serie de instrucciones incluidas
entre la instruccion FOR...TO y la instruccion NEXT. Para este ejemplo
mostraremos la manera en que podemos hacer que el ordenador exponga
la tabla de multiplicar por el numero 12 (1x12, 2x12, 3x12, etc.). Es
decir, que repita el producto, CON (FOR) uno de los datos, variando
desde el valor inicial 1, HASTA (TO) que ese dato llegue a tener como
valor final 12. Observa que el producto se simboliza en BASIC mediante
el signo asteri'sco (*). Teclea lo siguiente:
5 els ENTER
10 for a = 1 to 20 ENTER
20 print a" * 12 ="a*12 ENTER
30 next a ENTER
run ENTER
Pagina F2.13
FUNDAMENTOS
Observaras que las columnas aparecen desordenadamente en pantalla,
asi' que teclea ahora:
5 els ENTER
10 for a = 1 to 9 ENTER
20 print a" * 12 ="a*12 ENTER
30 next a ENTER
40 for a = 10 to 20 ENTER
50 print a"* 12 ="a*12 ENTER
60 next a ENTER
run ENTER
Experimenta con este programa para hallar las tablas de multiplicar
usando otros numeros. Por ejemplo, si quieres ver la tabla del 17, sustituye
el numero 12 de las li'neas 20 y 50 por el numero 17. Finalmente, restaura
como siempre el ordenador con las teclas CTRL, SHIFT y ESC.
Observa que es posible especificar el valor por el que se incrementa
la variable que controla este bucle cuando va a efectuar OTRA (NEXT)
ronda, usando la palabra reservada para definir el paso (STEP). Para
mas informacion, estudia la descripcion de ios bucles FOR—NEXT
en el capi'tulo 8.
ARITMETICA SIMPLE
Tu ordenador CPC^64 puedes usarlo tambien como un calculador de
sobremesa.
Para comprender esta forma de operar, realiza los siguientes ejemplos.
Como ya sabes, podemos usar el signo de interrogacion (?) en lugar
de teclear la palabra PRINT, y asi' abreviar. Las respuestas se expondran
en pantalla tan pronto como pulses la tecla ENTER.
ADICION
Usa la tecla SHIFT y la marcada con ; para conseguir el signo mas
Teclea
?3+3 ENTER
&
(observa que no tienes que teclear el signo =)
Teclea:
?8+4 ENTER
12
Pagina F2.14
FUNDAMENTOS
SUSTRACCION
Directamente consigues el signo <menos, sin teclear SHIFT).
Teclea:
?4-3 ENTER
1
Teclea
?8-4 ENTER
MULTIPLICACION
Teclea SHIFT y :, para conseguir el * que simboliza en BASIC la
multiplicacion.
Teclea:
?3*3 ENTER
9
Teclea:
?8*4 ENTER
32
DIVISION
Directamente consigues la / que simboliza la division.
Teclea:
?3/3 ENTER
1
Teclea:
?8/4 ENTER
RAIZ CUADRADA
Para hallar la raiz cuadrada de un numero, teclea la funcion SQR (X),
siendo el argumento de la funcion, la X, el numero cuya raiz cuadrada
quieres saber.
Teclea:
?sqr<16) ENTER
4
lo que significa /l6.
Teclea:
?sqr<100> ENTER
10
Pagina F2.15
FUNDAMENTOS
EXPONENCIACION
Usa directamente el signo de "elevado a", marcado con + . (Esta debajo
de la L.
La potencia de un numero es el resultado de multiplicar ese numero
tantas veces como indica el exponente. Por ejemplo 3 2 , 3 3 , 3 . Teclea:
?3t3 ENTER
27
esto significa 3 3
Teclea:
?8t4 ENTER
4096
eso significa 8 4
RAIZ CUBICA
Facilmente puedes calcular rai'ces cubicas, si recuerdas que son equivalentes
a elevar el numero a la potencia 1/3.
Para hallar la raiz cubica de 27 (V27). Teclea:
?27f(l/3) ENTER
3
Para hallar la raiz cubica de 125, teclea:
?125f(l/3) ENTER
CALCULOS COMBINADOS (+, -, *, /)
Los calculos combinados son bien interpretados por el ordenador, siempre
y cuando se calculen de acuerdo con las prioridades estipuladas para
cada operacion.
La primera prioridad corresponde a la multiplicacion, luego la division,
luego la adicion, y finalmente la sustraccion. Esas prioridades se aplican
unicamente cuando en la expresion figuran solo estas cuatro operaciones.
Las prioridades seran ampliamente explicadas mas adelante e incluiran
otras clases de operacion.
Si el calculo fue:
3+7-2*7/4
Puedes pensar que podria calcularse en la forma siguiente:
3+7-2 *7 /4
8 *7 /4
56/4
14
Pagina F2.16
i
FUNDAMENTOS
Pero de hecho, el ordenador lo calcula como:
3+7-2*7/4
=3+7-14/4
=3+7-3. 5
= 10-3.5
=6.5
Compruebalo tecleando esta expresion tal y como esta escrita.
Teclea:
?3+7-2*7/4
6.5
ENTER
Puedes cambiar la manera en que el ordenador calcula una expresion
si empleas parentesis. El ordenador tratara primero las operaciones
incluidas dentro de los parentesis de acuerdo con las prioridades
establecidas, y luego pasara a las que estan fuera de los parentesis.
Ensayalo tecleando la expresion anterior y colocando parentesis, tal
y como el siguiente ejemplo:
?< 3+7-2 >*7/4 ENTER
14
MAS SOBRE POTENCIACION
Si quieres usar en tus calculos numeros muy grandes o muy pequenos,
es conveniente que uses la denominada notacion cientffica. En esta
notacion se usa la letra E para indicar exponentes de los numeros con
relacion a la base 10. Puedes usar la e minuscula o la E mayuscula.
Por ejemplo, 300 es lo mismo que 3xl0 2 ; por lo que en notacion cienti'fica
diriamos 3E2. Similarmente, 0,03 (la coma decimal es el punto decimal
de los angloparlantes) es lo mismo que 3.10" 2 . Ensaya con los siguientes
ejemplos:
1. 30x10
Puedes teclear en el ordenador:
?30*10 ENTER
300
o puedes teclear:
?3el*iei ENTER
300
2. 3000x1000
Teclea:
?3e3*le3 ENTER
3000000
Pagina. F2.17
FUNDAMENTOS
3. 3000x0,001
Teclea:
?3e3*le-3 ENTER
3
Pagina F2.18
AMSTRAD CPC464
Fundamentos 3:
GRAFICOS, MODOS
Y SONIDOS
El Ordenador Personal a Color AMSTRAD CPC464 dispone de tres
modos de operacion en lo referente a la presentacion de imagenes
en pantalla: Modo 0, Modo 1 y Modo 2.
Cada vez que se pone en marcha el ordenador, automaticamente adopta
el Modo 1.
Para comprender estos tres modos diferentes, enciende el ordenador
y pulsa la tecla marcada con 1. Mantenla pulsada hasta que rellenes
dos lfneas de unos. Si contaras la cantidad de unos que hay en cada
linea, veras que son 40. Eso significa que en el modo 1, el "prescrito"
como normal, hay 40 columnas en cada linea de texto. Pulsa ENTER
-y obviamente obtendras un mensaje de error sintactico- pero no te
preocupes, es una manera rapida y simple de volver a conseguir el
aviso Ready, que te dice que el ordenador esta dispuesto para recibir
tus ordenes.
Teclea ahora: mode <Z> ENTER
Veras que los caracteres en la pantalla se ensanchan. Pulsa como antes
la tecla con el 1 y mantenla pulsada hasta que rellenes dos lfneas completas
de unos. Si cuentas el numero de unos en cada linea, veras que son
20. Eso significa que en el modo 0, hay 20 columnas por cada linea.
Pulsa de nuevo ENTER.
Ahora teclea: mode 2 ENTER
Veras que este es el modo en que los caracteres son mas estrechos,
y que si tecleas filas de unos como antes, contaras 80 columnas por
cada linea. Eso significa que el modo 2 corresponde a una imagen de
80 columnas. Para resumir:
Modo
Modo 1
Modo 2
= 20 columnas
= 40 columnas
= 80 columnas
Finalmente, pulsas otra vez la tecla ENTER.
COLORES
Hay una gama de 27 colores. Obviamente, en un monitor de fosforo
verde (GT64) aparecen como diferentes matices de verde. Si has comprado
el monitor GT64, puedes adquirir el modulador/alimentador MP1 AMSTRAD
con el fin de aprovechar las posibilidades de color en tu ordenador
empleando tu televisor cassette.
Pagina F3.1
jfipf
FUNDAMENTOS
En el Modo 0, hasta 16 de los 27 colores disponibles pueden aparecer
en la pantalla en cualquier momento.
En el Modo 1, hasta 4 de los 27 colores pueden aparecer en pantalla
en cualquier momento.
En el Modo 2, hasta 2 de los 27 colores pueden aparecer en pantalla
en cualquier momento.
Tambien podras cambiar el borde de la pantalla (BORDER), el area
en que aparecen los caracteres (PAPER) o la PLUMA con que el ordenador
pintara los caracteres (PEN), y estas tres facetas, todas independientemente
una de otra.
Los 27 colores disponibles se enumeran en la tabla 1, cada uno con
el numero que sirve de referenda a la TINTA que se usa tanto para
el papel como para la pluma.
TABLA MAESTRA DE COLORES
N° Tinta
Color Tinta
N° Tinta
Color Tinta
Negro
14
Azul Pastel
1
Azul
15
Naranja
2
Azul Brillante
16
Rosa
3
Rojo
17
Magenta Pastel
4
Magenta
18
Verde Brillante
5
Malva
19
Verde Marino
6
Rojo Brillante
20
Ciano Brillante
7
Purpura
21
Verde Lima
8
Magenta Brillante
22
Verde Pastel
9
Verde
23
Ciano Pastel
10
Ciano
24
Amarillo Brillante
11
Azul Cielo
25
Amarillo Pastel
12
Amarillo
26
Blanco Brillante
13
Blanco
Tabla uno: Los numeros de tinta (INK) y los colores correspondientes.
Como mencionamos anteriormente, cada vez que se pone en marcha
el ordenador adopta el modo 1 para las imagenes en pantalla. Los colores
del BORDE, PAPEL, y PLUMA en este momento son:
Borde: Numero de TINTA: 1 (azul)
Papel (el fondo): Numero de TINTA: 1 (azul)
Pluma (los si'mbolos): Numero de TINTA: 24 (amarillo brillante)
Pagina F3.2
FUNDAMENTOS
jEEHL
PLUMA
BORDE
PAPEL
El BORDE es el area que rodea al PAPEL. (Observa que al poner en
marcha el ordenador, tanto el BORDE como el PAPEL son azules).
El PAPEL es el area de la pantalla rodeada por el BORDE, donde aparecen
los caracteres. La PLUMA es la que usa el ordenador "para pintar
los caracteres", y tiene plumas con diferente tinta.
Para explicar esto mas detalladamente, es por lo que hemos asociado
los comandos PEN y PAPER usados para las imagenes del monitor
a realmente una PLUMA de escribir y a una hoja de papel para notas.
A medida que el color de la TINTA con que se impregna la PLUMA
se cambia, se cambia tambien el color con que los caracteres aparecen
en pantalla. A medida que se cambia el color de la TINTA empleada
para "entintar" el papel, asi' cambiara el color con que el fondo aparece
en la pantalla.
Para cambiar el color del BORDE que rodea al papel:
border ENTER
Con eso veras que el BORDE cambia* de color, pasando del azul al
negro. Si consultas la Tabla 1, veras que el color con numero
corresponde al negro. El BORDE puede cambiarse a cualquiera de los
colores de esa tabla mediante el comando BORDER, seguido del numero
de color que se desea.
Ahora teclea:
els ENTER
para limpiar la pantalla.
Para ver como cambia el color del PAPEL, teclea:
paper 2 ENTER
Veras como con eso, el color del fondo que enmarca la palabra Ready
ha cambiado a un color ciano brillante. Y no es exactamente el azul
brillante que esperabas!!
Teclea ahora:
els ENTER
Pagina F3.3
FUNDAMENTOS
para que se limpie la pantalla y quede completamente con el nuevo
color de PAPEL.
Para ver como cambia el c^lor de la PLUM A, teclea:
PEN 3 ENTER
Veras que el color de los caracteres ha cambiado y que la palabra
Ready aparece con sus letras escritas en un rojo brillante, y no en un
simple rojo.
Teclea ahora:
els ENTER
Para que comprendas mas facilmente lo que ha sucedido aquf, debes
tambien consultar la Tabla 2. Cuando se pone en marcha el ordenador,
usa como numero de PAPEL el numero 0. Y si miras en la Tabla 2,
en la primera columna que corresponde al numero de PAPEL o de
PLUMA, encontraras el numero 0. Si ahora sigues la lfnea correspondiente
al 0, te encontraras en la columna del modo 1, que figura como numero
de color el 1.
Si ahora pasas a consultar la tabla maestra de colores (Tabla 1) veras
que al numero 1 le corresponde tinta azul, que es el color del PAPEL
que observaras al poner en marcha el ordenador, como ya te hemos
dicho.
En los ejemplos anteriores, cambiamos el papel con la instruccion PAPER
2. Si en la columna izquierda de la tabla 2, buscas el numero 2 y luego
sigues esa li'nea hasta la columna correspondiente al modo 1, veras
que tienes como numero de color e) 20. Y volviendo a la tabla 1, veras
que el color con numero 20 es el ciano brillante que mencionamos.
Pagina F3.*
FUNDAMENTOS
COLOR DE LA TINTA
N° Papel/Pluma
Modo
Modo 1
Modo 2
1
1
1
1
24
24
24
2
20
20
1
3
6
6
24
4
26
1
1
5
24
24
6
2
20
1
7
8
6
24
8
10
1
1
9
12
24
24
10
14
20
1
11
16
6
24
12
18
1
.1
13
22
24
24
14
Parpadeo
1,24
20
1
15
Parpadeo
16,11
6
24
Tabla dos: Referencias PAPEL/PLUMA/MODO/TINTA
Pagina F3.5
FUNDAMENTOS
La PLUMA usada cuando el ordenador se pone en marcha es la numero
1. Consultando la Tabla 2 y buscando en la columna de modo 1 la que
corresponde a una PLUMA con numero 1, veras que es el numero de
color 24. Si consultas ahora la Tabla 1, veras que el numero de color
24 es amarillo brillante, que es el color con que aparecen los caracteres
(pintados por la PLUMA) cuando se pone en marcha el ordenador, como
ya mencionamos. En los ejemplos, cambiamos el numero de pluma
mediante el comando PEN 3. Si consultamos la Tabla 2, veremos que
para esa pluma numero 3 y estando en el modo 1, le corresponde como
numero de color el 6. Y en la Tabla 1 vemos que el color 6 es rojo
brillante. Que era lo que habiamos comentado.
En este momento, estamos pues usando un PAPEL numero 2, y una
PLUMA numero 3. Podemos continuar cambiando estos colores y podemos
hacerlo usando el comando INK. Este comando de TINTA, tiene dos
numeros. El primero es el numero de la PLUMA o del PAPEL que
queremos cambiar; el segundo es el numero que queremos asignar a
la PLUMA o PAPEL respectivamente. Consulta la Tabla 1 para ver
los numeros de los colores, como ejemplo te mostraremos como cambiar
el color de papel con numero 2 a negro, y el color de la pluma con
numero 3 a bianco brillante. En la Tabla 1, veras que el numero de
color para el negro es el 0, y el numero de color para el bianco brillante
es el 26.
Por lo tanto, puedes teclear ahora:
ink 2,0 ENTER
(Como explicamos, 2 es el numero del PAPEL vigente, y es el numero
de color del negro).
Ahora teclea:
ink 3, 26 ENTER
(3 es el numero de PLUMA vigente y 26 es el numero de color bianco
brillante).
Ahora restaura completamente el ordenador a sus condiciones iniciales,
pulsando las teclas CTRL, SHIFT y ESC.
Como explicamos anteriormente, cada vez que se pone en marcha
la maquina, o se restaura a las condiciones iniciales usando las teclas
CTRL, SHIFT y ESC, el PAPEL tiene por numero de y la PLUMA
tiene por numero el 1. El color de un PAPEL con numero 1, es azul
y el de una PLUMA con numero 24, es amarillo brillante. Eso se teclearia
como ink 0,1 para el PAPEL, e ink 1,2* para la PLUMA. Para cambiar
inmediatamente estos colores a caracteres pintados en bianco (PLUMA)
sobre un fondo negro (PAPEL), teclea:
ink 0,0 ENTER
Pagina F3.6
FUNDAMENTOS
Y luego teclea:
ink 1,26 ENTER
COLORES PARPADEANDO
Es posible hacer que los colores de los caracteres alternen entre uno
y otro, logrando el parpadeo o destelleo. Eso puede lograrse anadiendo
un numero extra de color dentro del comando INK relativo a la PLUMA.
Por ejemplo, para ver los caracteres alternativamente en bianco brillante
y rojo brillante, teclea:
ink 1,26,6 ENTER
En este caso, 1 es el numero de la PLUMA, mientras que 26 es el
nuevo color bianco brillante y 6 es el otro color empleado rojo brillante.
Tambien es posible hacer que el color del papel situado detras.de los
caracteres sea el que alternativamente cambie de un color a otro.
Eso puede lograrse como antes, anadiendo un numero extra de color
al comando INK tecleado para el PAPEL.
Por ejemplo, para ver que el PAPEL cambia alternativamente entre
verde y amarillo brillante, por detras de los caracteres, teclea:
ink 0,9,24 ENTER
En este caso, es el rtumero del PAPEL, mientras que 9 es el nuevo
color verde y 24 el color alternative amarillo brillante.
Restaura ahora el ordenador usando CTRL, SHIFT y ESC.
Observa que el modo 0, en la Tabla 2, figuran dos numeros de tinta
o de papel (numeros 14 y 15) que estan prescritos como colores
parpadeantes. En otras palabras, no es necesario anadir un numero
extra en el comando de tinta, cuando se usan esos numeros 14 6 15.
Teclea lo siguiente:
mode ENTER
pen 15 ENTER
y en la pantalla, veras que la palabra Ready es alternativamente pintada
en azul cielo y rosa.
Ahora teclea:
paper 14 ENTER
els ENTER
Veras que ademas de que parpadeen los caracteres de la palabra Ready
entre azul cielo y rosa, el fondo de la imagen, el PAPEL, tambien
cambia alternativamente de color entre azul y amarillo brillante.
Pagina F3.7
FUNDAMENTOS
Y encima ademas, es posible cambiar estos colores parpadeando prescritos
en el ordenador, si le tecleas un nuevo comando INK tan to para el
PAPEL como para la PLUMA. Para cambiar el color de la PLUMA
a un parpadeo entre negro y bianco brillante, teclea:
ink 15,0,26 ENTER
En este caso, 15 es el numero de PLUMA, mientras que es el numero
de color del negro, y 26 es el numero de color bianco brillante.
Finalmente, tambien es posible hacer que el BORDE parpadee, cambiando
entre dos colores, si anadimos un numero extra de color dentro del
propio comando BORDER. Teclea:
border 6,9 ENTER
Y veras que todo el area del BQRDE esta cambiando entre rojo brillante
y verde.
Ahora restaura el ordenador mediante CTRL, SHIFT y ESC, y preparate
que todavia hay mas cosas.
PROGRAMA DE DEMOSTRACION
Para mayor demostracion de los colores disponibles, teclea y ejecuta el
siguiente programa:
10 mode 0: ink 0,2: ink 1,24: paper ENTER
20 pen l: for b=0 to 26: border b ENTER
30 locate 3, 12: print "COLOR DEL MBRGEN";B ENTER
40 sound 4, (40-b) ENTER
50 for t=l to 600:next t:next b:cls ENTER
60 for p=0 to 15: paper p:pen 5: print "FONDO" ■
p=print ENTER
70 for n=0 to 15: pen n : print "TRflZO'-jn ENTER
80 sound 1, (n*20+p) ENTER
90 for t=l to 100:next t:next n ENTER
100 for t=l to 1000:next t:cls:next p ENTER
110 cls:paper 0: pen l: locate 7,12: print
"FIN": for t=l to 2000: next t ENTER
120 mode l: border l:ink 0,1: ink i,24:paper 0:
pen 1 ENTER
run ENTER
Pagina F3.8
FUNDAMENTOS
Hemos incluido ademas, algunos sonidos en el programa. Mas adelante
los explicaremos en la seccion pertinente.
GRAFICOS
De ahora en adelante, no te pediremos que pulses la tecla ENTER
despues de cada Ifnea. Simplemente supondremos que ya se ha convertido
en un habito automatico en ti'.
Hay cierto numero de caracteres en la memoria del ordenador que
corresponden a los si'mbolos (letras, cifras, signos, etc.) que usamos
para las comunicaciones con el ordenador. Para obtener cualquiera
de esos si'mbolos, usamos la palabra clave chr$(X), siendo la X incluida
dentro de los parentesis el numero que corresponde a ese simbolo,
que debe estar dentro de la gama 32 a 255.
Pulsa CTRL, SHIFT y ESC para restaurar el ordenador y luego teclea:
print chr*<250)
En la pantalla veras el simbolo que corresponde al caracter con numero
250, y en este caso, es un hombre en postura de caminar hacia la derecha.
Para ver todos los si'mbolos que pueden aparecer en pantalla, junto
con su numero asociado de caracter, teclea el siguiente programa:
10 for n=32 to 255: print n;chr$(n)
20 next n
run
Como referenda, la gama de caracteres junto con los numeros asociados
y los si'mbolos que representan, aparece en el Apendice III al final
de este libro.
UBICANDO EL CURSOR
Existe un comando que se usa para ubicar el cursor de texto en una
parte especi'fica de la pantalla. A menos que se UBIQUE el cursor
en un sitio determinado, mediante el comando LOCATE, el cursor
de caracteres comienza en la esquina superior izquierda de la pantalla,
que corresponde a las coordenadas x (eje horizontal) e y (eje vertical)
de valores 1,1. En el modo de imagen \, sabemos que hay 40 columnas
y 25 li'neas dentro del area de exposicion de caracteres. Para, situar
un determinado caracter en el centro de la linea superior de. la pantalla,
estando en el modo 1, usari'amos la pareja 20,1 como coordenadas x,y.
Para ver esto, teclea: (recuerda que despues de cada linea has de pulsar
ENTER).
mode 1
.limpia la pantalla, y el cursor a su posicion
de base.
Pagina F3.9
FUNDAMENTOS
10 locate 20, 1
20 print chr* (250)
run
Simplemente para comprobar que esta en la ifnea superior, puedes
teclear:
border
Con esto, el BORDE se habra puesto en negro, y veras mas facilmente
que el hombrecillo esta situado en le medio de la li'nea superior de
la pantalla.
En el modo 0, solo hay 20 columnas, pero las mismas 25 li'neas. Si
ahora tecleas:
mode
run
Veras que el hombre aparece ahora en la esquina superior derecha
de la pantalla. Eso sucede porque la coordenada x con valor 20, es
la ultima columna si esta en el modo 0.
En el modo 2, hay 80 columnas y 25 li'neas. Usando este mismo programa,
probablemente seras capaz de predecir donde aparecera el hombrecillo.
Teclea pues:
mode 2
run
y ahora regresa al modo 1, simplemente tecleando:
mode 1
Ahora experimenta por ti' mismo, modificando la ubicacion del cursor
y el numero de la funcion caracter para situar diferentes si'mbolos
en cualquier parte de la pantalla. Meramente como ejemplo, teclea:
locate 20, 12: print chr* (240)
Veras una flecha en el centro de la pantalla. Observa que en este comando:
• 20 es el valor de la coordenada horizontal (x) en la gama 1 a 40.
• 12 es el valor de la coordenada vertical (y) en la gama 1 a 25.
• 240 es el numero de caracter cuyo si'mbolo se expone en pantalla
(en la gama 32 a 255).
Para conseguir que el si'mbolo asociado al caracter 250 sea repetido
a lo ancho de la pantalla, teclea el siguiente programa:
5 els
10 for x = 1 to 39
locate x, 20
print chr* (250)
next x
goto 5
20
40
50
60
run
Pagina F3.10
FUNDAMENTOS
Pulsa la tecla ESC dos veces para escapar de este programa que nunca
termina.
Con el fin de quitar de la pantalla el caracter anterior, antes de mostrar
otro caracter, puedes teclear:
40 print " '•; chr*(250)
(Al escribir esta li'nea 40, automaticamente sustituye a la li'nea que
previamente tenia como numero el 40).
Ejecuta ahora el programa para comprobarlo.
run
Para mejorar el movimiento del caracter a lo ancho de la pantalla,
afiade la siguiente lihea:
30 call &bdl9
Este programa puede mejorarse adicionalmente, perfeccionando el
movimiento al anadirle algunos bucles de retardo y usando un si'mbolo
diferente para la vuelta.
Teclea:
list
Y ahora anade las siguientes lineas a este programa:
60 for n = 1 to 300 : next n
65 for x = 39 to 1 step-1
70 locate x, 20
75 call &bdl9
80 print chr* (251) ;" "
85 next x
90 for n = 1 to 300: next n
95 goto 10
run
Intenta este programa interesante a pesar de su brevedad. Hemos afiadido
algunos otros comandos que explicaremos en capitulos subsiguientes.
Por ahora, simplemente teclea:
new
10 mode 1
20 locate 21,14:print chr*<244)
30 tag
40 for x=0 to 624 step 2
50 mover -16,
60 if x<308 or x> 340 then y=196sgoto 90
70 if x <324 then y=x-104:goto 85
Pagina F3.ll
80 y=536-x
85 sound 1,0,20, 7
90 move ox, oysprint " " ; : ox=x: oy=y
100 move x,y
110 if (x mod 4) = then print chr*<250>
else print chr*(251) ;
120 for n=l to 4: call &bd!9:next n
130 next x
140 tagoff
150 goto 20
run
FUNDAMENTOS
PLOT
A diferencia del comando de ubicacion del cursor, el comando de PINTAR
se usa para determinar la posicion del cursor interno usado para graficos,
que usa otros ejes de coordenadas, y con diferentes medidas. De hecho,
determina la resolucion en pantalla, y lo que se.pinta es un diminuto
punto que solemos llamar MOTA (o bien pixel como abreviatura de
elemento pictorico).
Observa que el cursor grafico es invisible, y es tambien independiente
del cursor de texto o caracteres.
Puedes pintar 640 motas dentro de una linea horizontal, y 400 motas
dentro de cada linea vertical. Usando las coordenadas x, y, se toma
como origen la esquina inferior izquierda de la pantalla, que por tanto
tiene coordenadas 0,0. A diferencia del comando de ubicacion del cursor
usado para caracteres, las coordenadas usadas para las motas son
independientes del modo 0, 1, 2 en que este el ordenador.
Para experimentar con esto, restaura primero el ordenador usando
CTRL, SHIFT y ESC, y luego teclea, recordando pulsar ENTER al final
de cada linea, el siguiente comando:
plot 320,200
Y veras que aparece en el centro de la pantalla un punto diminuto:
la MOTA.
Cambia ahora el modo, tecleando:
mode
plot 320,200
Veras que la mota continua todavia en el centro de la pantalla, pero
ahora es mas grande en su dimension horizontal.
Cambia el modo de nuevo y teclea el mismo comando para ver el efecto
en el modo 2. Por tanto teclea:
mode 2
plot 320,200
Pagina F3.12 '
FUNDAMENTOS
La mota continua en el centro, pero ahora es mucho mas pequena.
Pinta diferentes motas en diversos sitios de la pantalla y usando diversos
modos, con el fin de acostumbrarte a este comando. Cuando hayas
concluido, regresa al modo 1 y limpia la pantalla, simplemente con
el comando:
mode i
DRAW
Restaura primero el ordenador usando CTRL, SHIFT y ESC. Este comando
DRAW, nos permite DIBUJAR una li'nea a partir de la corriente posicion
del cursor de graficos. Para ver esto con mas detalle, dibuja un rectangulo
en la pantalla usando el programa del ejemplo. En el se comienza por
situar el cursor grafico mediante el comando de PINTE. Luego se traza
una linea desde esa posicion del cursor, hacia la esquina superior izquierda,
luego desde allf hacia la esquina superior derecha, etc.
Teclea:
5 els
10 plot 10, 10
20 draw 10, 390
30 d raw 630, 390
40 draw 630, 10
50 draw 10, 10
60 goto 10
run
Pulsa dos veces ESC para "interrumpir" la ejecucion de este programa
sin fin.
Ahora anade al programa las siguientes li'neas que dibujan un segundo
rectangulo dentro del primero. Teclea:
60 plot 20,20
70 draw 20, 380
80 draw 620,380
90 draw 620,20
100 draw 20, 20
200 goto 10
run
Pulsa dos veces la tecla ESC para "rumpir" la ejecucion de este programa.
Pagina F3.13
FUNDAMENTOS
CIRCULOS
Los circulos puedes ser pintados (mota a mota) o dibujados (a trazos
o lineas). Un metodo para formar un circulo, es pintar las coordenadas
x, y de cada uno de los puntos de la circunferencia. Consulta la figura
inferior y veras como el punto p de la circunferencia puede pintarse
usando como coordenadas x e y las dadas por las ecuaciones:
x=190*cos(a)
y=190*sin(a)
/
LIMITE DE
LA PANTALLA
320
J
Vamos ahora a comenzar a usar la palabra clave NEW antes de teclar
un programa, para que deje como NUEVA la memoria del ordenador.
Es decir, con este comando se le dice al ordenador que vacie
completamente la memoria en forma similar a lo que hacemos con
la restauracion de condiciones iniciales (CTRL, SHIFT y ESC). Sin
embargo, difiere de la restauracion en que no se limpia la pantalla,
sino solamente la memoria. Es util si queremos mantener en pantalla
el programa viejo para que nos sirva de referenda al escribir un NUEVO
programa.
Volvamos ahora a ver como pintamos un circulo. En el programa anterior,
los puntos pintados lo eran con respecto a la esquina inferior izquierda
de la pantalla. Si ahora queremos situar el circulo en el centro de
la pantalla, tendriamos que pintar el centro del circulo en las coordenadas
320, 200; y luego pintar todos los puntos del circulo con relacion a
ese centro, anadiendole las coordenadas x, y como funcion del angulo.
Por lo tanto, para pintar el circulo, seria algo como esto:
new
5 els
10 for a=l to 360
deg
320, 200
320+190*cos (a) , 200+190*sin (a)
15
20
30
40
run
plot
plot
next
Pagina F3.14
FUNDAMENTOS
El radio del cfrculo puede reducirse disminuyendo la cifra de 190 que
aparece en el programa (el 190 se refiere a numero de motas).
Para ver el efecto de las medidas angulares que usamos, (entre radianes
o grados), suprime la linea 15 del programa anterior que fija esa medida
en grados. Simplemente teclea 15 y RETURN, y ejecuta de nuevo el
programa.
Para ver un cfrculo solido (y no simplemente la circunferencia) dibujado
mediante li'neas trazadas desde el centro, edita la linea 30 sustituyendo
la palabra clave plot con la palabra clave draw. La linea 30 sera pues:
draw 320+190*cos(a) , 200+190*sin (a)
Ensaya esto tambien con y sin la linea 15 que anteriormente suprimimos.
Observaras que en la linea 40 de este programa hemos usado next
en lugar de next a.
Es aconsejable teclear simplemente next en los programas. El ordenador
determinara a que bucle e instruccion FOR esta asociado esa instruccion
NEXT. Solo en programas donde hay numerosos bucles FOR—NEXT,
puede ser aconsejable anadir la variable de control correspondiente
despues de cada instruccion NEXT con el fin de que puedas identificar
mas facilmente los bucles al examinar el programa.
ORIGEN
En el programa anterior, usamos el comando PLOT para designar el
centro del cfrculo, y luego anadfamos las coordenadas x, y de los puntos
de la circunferencia relativas a ese centro. En lugar de efectuar esta
suma, podemos usar el comando que fija el ORIGEN de coordenadas.
Si con el senalamos el centro de un cfrculo, simplemente despues solo
tenemos que precisar las coordenadas x, y de todos los puntos de la
circunferencia (en pasos de un grado) con respecto a este nuevo origen.
Para verlo, teclea:
new
5 els
10 for a = 1 to 360
15 deg
20 origin 320,200
30 plot 190*cos(a> , 190*sin(a)
40 next
run
En este programa, tambien puedes alterar la lfneal5 para quitar los
grados, y/o la linea 30 para dibujar un cfrculo en lugar de pintar una
circunferencia.
Pagina F3.15
FUNDAMENTOS
Para pintar cuatro pequenos circulos en pantalla, teclea el siguiente
programa:
new
5 els
10
15
20
30
40
50
60
70
80
90
to 360
for a=l
deg
origin 196,282
plot 50*cos(a) , 50*sin<a>
origin 442,282
plot 50*eos(a>,
origin 196, 1 16
plot 50*cos(a),
origin 442, 1 16
plot 50*cos(a) , 50*sin(a)
100 next
run
50*sin(a)
50*sin<a)
De nuevo, tambien puedes experimentar con la linea 15 y modificar
las lineas 30, 50, 70 y 90 para usar el comando DIBUJE en lugar del
comando PINTE.
GOSUB RETURN
Si hay una serie de instrucciones dentro de un programa que efectuan
una tarea determinada que se realiza un cierto numero de veces en
el programa de forma "rutinaria", pueden considerarse estas instrucciones
como una subrutina, y hacer que el ordenador VAYA a efectuar esa
tarea, mediante el comando GOSUB seguido del numero de linea en
que comienza la subrutina.
El final de dichas subrutinas, se marca tecleando la instruccion que^
hace que el ordenador VUELVA (RETURN) al punto en que se desvio.
Es decir, cuando el ordenador encuentra la instruccion RETURN, volvera
a la instruccion que va inmediatamente detras de aquella en que se
produjo el desvio mediante el comando GOSUB.
En el programa anterior, la instruccion plot 50*cos(a), 50*sin(a) se
repetia cuatro veces. Esta instruccion puede ser considerada y separada
como una subrutina, hacia la que se desvia el ordenador cada vez que
se necesita usando la instruccion GOSUB. Observalo en el siguiente
programa:
360
5 els
10
for
a=l to
15
deg
20
orig
in 196,
30
gosu
b 120
40
orig
in 442,
Pagina
F3.16
282
>82
FUNDAMENTOS
50 gosub 120
60 origin 196, 116
70 gosub 120
80 origin 442, 116
90 gosub 120
100 next
110 end
120 plot 50*cos(a) , 50*sin<a)
130 return
run
Observa tambien que en la li'nea 110 usamos la instruccion END; porque
de lo contrario, el programa obviamente continuaria despues de la
instruccion 100 y llevaria a cabo la 120, que solo se necesita cumplimentar
cuando la subrutina sea citada mediante GOSUB.
Para concluir esta seccion, ensaya con el siguiente programa que incorpora
un monton de los comandos de programacion y de las palabras clave
que a estas alturas ya debes comprender. Teclea:
new
0:ink 0,0
new
10 mode Osborder 6: paper 0:ii... „, ,
20 gosub 160:for x=l to 19: locate x, 3
30 pen 15: print" " ;chr* (238)
40
50
60
70
80
90
^ W 9UU 1UV< I Ul /\ — JL WW i J' lUUQbC A, U
pen 15: print" " ;chr* (238)
for t=l to 50:next t:sound 2, (x+100)
next x:gisub 160:for b=3 to 22
locate 20, b:pen 7:print chr*(252)
rlcinncnh 1 fifllnovh h
SONIDOS
Los efectos sonoros son producidos por un altavoz incorporado dentro
del propio ordenador. Si estas usando el modulador/alimentador MP1
y un televisor domestico, sigue manteniendo en el minimo el control
de volumen del televisor.
Pagina F3. 17
FUNDAMENTOS
El nivel de sonido del ordenador, puede ajustarse usando el mando
de volumen, marcado VOLUME en el costado derecho del ordenador.
El sonido puede tambien enviarse hacia el enchufe de entrada de un
sistema estereo, usando el enchufe de entrada/salida, marcado I/O
en la parte izquierda del panel posterior del ordenador. Eso te permitiria
escuchar el sonido generado por el ordenador a traves de los altavoces
o auriculares de tu equipo de alta fidelidad.
El comando SOUND, tiene 7 parametros para el SONIDO. Los primeros
2 de ellos, deben usarse siempre, el resto es opcional. El comando
se teclea en la forma:
SONIDO estado del canal, periodo del tono, duracion, volumen,
envolvente de volumen, envolvente de tono, periodo del ruido.
En los ejemplos siguientes, teclearemos un 1 como estado del canal;
en otras palabras, el numero de referenda.
Periodo del Tono
Consulta el Apendice VII y veras que la nota DO media, tiene un periodo
del tono de 478.
Teclea:
new
10 sound 1,478
run
Oiras una breve nota que es la "media c" y dura 0,2 segundos.
Duracion
Cuando no se especifica duracion del sonido generado, sonara durante
0,2 segundos, la unidad de duracion es de 0,01 segundos. Para hacer
que una nota dure 1 segundo, usariamos por lo tanto 100 en este parametro.
Para que dure 2 segundos, usariamos 200, etc. Teclea:
10 sound 1, 478,200
run
Y ahora oiras durante 2 segundos la nota media c.
Volumen
Este numero especifica el volumen con que arranca una nota. El numero
debe estar en la gama a 7. Pero sin embargo, si se especifica un
envolvente de volumen, la gama se amplia de a 15. Si no se utiliza
en el comando ningun numero, se presupone k que es el valor prescrito
para las omisiones. Teclea:
10 sound 1,478,200*3
Y observa el volumen de este sonido. Luego teclea lo mismo pero usando
un numero de volumen mayor:
10 sound 1,478,200,7
Pagina F3.18 :
FUNDAMENTOS
Y comprobaras que es mucho mas alto que el anterior.
Envolvente de Volumen
El comando para el envolvente de volumen usa la palabra reservada
env. Normalmente tiene 4 parametros: los ultimos 3 aparecen en cualquiera
de las cinco secciones de envolvente que hay disponibles como maximo.
Aqui' solamente usamos uno de ellos. Las explicaciones adicionales
aparecen en el capitulo 6.
env numero del envolvente, numero de pasos, amplitud (tamano)
del paso, tiempo del paso.
Numero del envolvente
Es el numero dado a un determinado envolvente, de modo que pueda
especificarse en el comando SOUND. La gama de numero de envolventes
es de a 15.
Numero de pasos
Se usa en conjuncion con el tiempo del paso. Por ejemplo, puedes desear
tener 10 pasos de 1 segundo cada uno. En tal caso, el numero de pasos
es 10. La gama de valores posibles para los numeros de pasos es de
a 127.
Amplitud del paso
Cada paso puede varia'r en amplitud desde un nivel hasta un nivel
15 con respecto al paso precedente. Los 15 niveles de amplitud son
los mismos que se emplean en el comando SOUND. Sin embargo, cada
paso puede ajustarse desde -128 a +127 de manera que no solamente
se puede variar la amplitud subiendola o bajandola en la forma obvia,
sino que tambien puede variarse usando numeros mayores de 15 para
obtener algunos efectos especiales y extranos. La gama de numeros
empleada para las amplitudes del paso es de -128 a +127.
Tiempo del paso
Este numero especifica el tiempo transcurrido entre los pasos en unidades
de 0,01 segundo (1/100 de segundo). La gama de numeros para el tiempo
del paso es de a 255. Por lo tanto, el tiempo mas largo transcurrido
entre los pasos es de 2,55 segundos.
Para experimentar con la envolvente de volumen, teclea el siguiente
programa:
5 env 1, 10, 1, 100
10 sound 1,284,1000,1,1
run
Pagina F3.19
FUNDAMENTOS
La li'nea 10 especifica un sonido con un periodo del tono de 284 (convenio
internacional a) que dura 10 segundos y con un volumen de arranque
de 1, y usando la envolvente de volumen numero 1; envolvente que
esta definida en la li'nea 5 y consta de 10 pasos, aumentando la amplitud
en 1 a cada paso, y con un tiempo del paso de 1 segundo (100x0,01
segundos).
Cambia la li'nea 5 segun las instrucciones que te presentamos ahora,
y luego ejecuta el programa cada vez para oir el efecto obtenido al
cambiar la envolvente de volumen.
5
env
1, 100, 1, 10
5
env
1, 100,2, 10
5
env
1, 100,4, 10
5
env
1,50,20,20
5
env
1,50,2,20
5
env
1,50, 15,30
Y finalmente ensaya con esto:
5 env 1,50,2, 10
Observaras que la mitad del tiempo que dura el sonido, la amplitud
permanece constante. Es debido a que el numero de pasos que estipulamos
era 50, y el tiempo de cada paso era de 0,1 segundos. Por lo tanto,
el tiempo durante el que la amplitud de la envolvente vario fue solo
de 5 segundos; mientras que la duracion del sonido especificada en
el comando SOUND de la li'nea 10 fue de 10 segundos.
Experimenta por ti' mismo, para ver los tipos de sonido que puedes
generar.
Envolvente de Tono
El comando para la envolvente de tono es ent.
Tiene norrmalmente 4 parametros. LOs 4 parametros aparecen en cualquiera
de las 5 secciones de envolvente que hay disponibles como maximo.
Aqui' solamente estamos usando una de ellas. Las explicaciones completas
apareceran en el capi'tulo 6.
ent numero de envolvente, numero de pasos, periodo de tono del
paso y tiempo del paso.
Numero de envolvente
Es el numero dado a la envolvente particular de forma que pueda
especificarse en el comando SOUND. La gima de numeros de envolvente
es de 1 a 15.
Pagina F3.20
FUNDAMENTOS
Numero de pasos
Se usa en conjuncion con el tiempo del paso. Por ejemplo, puedes desear
tener 10 pasos de 1 segundo cada uno. La gama de numeros de paso
es de a 239.
Peribdo de Tono del Paso
El peribdo del tono de cada paso puede variar entre -128 a +127. Los
valores negativos aumentan la frecuencia de las notas (haciendo las
notas mas agudas). El periodo mas breve del tono es 0. Eso debes
recordarlo cuando calcules envolventes del tono. La gama completa
de peribdos del tono se muestra en el Apendice VII. Los numeros para
peribdos de tono del paso, debe estar en la gama de -128 a +127.
Tiempo del Paso
Este numero especifica el tiempo del paso en unidades de 0,01 segundo
(1 centesima de segundo). La gama de numeros para el tiempo del
paso es de a 255. Por lo tanto, el tiempo del paso mas largo es de
2,55 segundos.
Para experimentar con la envolvente del tono, teclea el siguiente programa
5 ent 1, 100,2,2
10 sound 1,284,200,15,0,1
run
La linea 10 especifica un sonido con un peribdo de tono de 28^ (convenio
internacional a), que dura 2 segundos, con un volumen de arranque
de 15 (el maximo), con una envolvente de volumen y con una envolvente
de tono designada por el numero 1.
La linea 5 es la envolvente de tono designada con el numero 1, y consta
de 100 pasos, creciendo en 2 a cada paso el peribdo del tono (reduciendo
la frecuencia del tono, cada 0,02 segundos, que es el tiempo del paso).
Cambia ahora la linea 5 a los valores que te presentamos a continuacion,
y luego ejecuta el programa cada vez para apreciar el efecto de cambiar
la envolvente del tono:
5 ent 1, 100,-2,2
5 ent 1, 10,4,20
5 ent 1, 10,-4,20
Ahora sustituye el comando SOUND y la envolvente del tono, tecleando:
5 ent 1,2, 17,70
10 sound 1,142,140,15,0,1
15 goto 5
run
Ejecutalo y luego pulsa la tecla ESC dos veces para "interrumpir"
la ejecucion de este programa sin fin.
— — Pagina F3.21 —
FUNDAMENTOS
Ahora puedes emplear los comandos de sonido, envolvente del volumen,
y envolvente del tono, para generar diferentes sonidos. Comienza tecleando:
new
5 env 1, 100, 1,3
10 ent 1, 100,5,3
20 sound 1,284,300,1,1,1
run
Luego sustituye la li'nea 10 tecleando:
10 ent 1, 100,-2,3
Ahora sustituye todas las liheas, tecleando:
5 env 1, 100,2,2
10 ent 1, 100,-2,2
20 sound 1,284,200,1,1,1
run
Y finalmente ensaya con las variaciones que se te ocurran a ti'.
Ruido
Se puede anadir ruido al final del comando SOUND. Se dispone de
una gama de ruidos con numeros del 1 ai 31. Ensayalo, simplemente
anadiendo el numero del ruido al final de los parametros del comando
SOUND y usando todavfa el comando de envolvente. Sustituye las li'neas
5 y 20, tecleando ahora:
5 env 1, 100,3, 1
10 sound 1,200,100,1,1,1,5
run
De nuevo, puedes ensayar algunos sonidos poco habituales, modificando
la envolvente del volumen y el comando de sonido, y anadiendo o no
el ruido.
L_ Pagina F3.22
CPC464: INTRODUCCION
1. Arranque
Para aquellos que os habeis saltado la introduction para principiantes,
los detalles de instalacion, puesta en marcha y familiarization con
el teclado, os advertimos que si encuentras confusa la terminologfa
que usamos, es conveniente que repases rapidamente la section de
introduction de los FUNDAMENTOS.
Temas comentados en este capitulo:
* Convenios de notation usados en esta Gufa de Usuario
* Puesta en marcha
* Familiarization con el teclado
No importa el grado de experiencia que tengas en programacion y
ordenadores, certiorate que sigues fielmente las instrucciones de puesta
en marcha. Si simplemente has abierto el embalaje y no puedes esperar
a comenzar adecuadamente, este capitulo te dira todo lo que necesitas
saber para satisfacer tu curiosidad initial y pasar a sumergirte en
las aplicaciones del BASIC. Esta section esta planteada para usuarios
que ya tienen alguna familiaridad con los ordenadores. Los principiantes
debieran comenzar con el capitulo de introduction de la section de
FUNDAMENTOS.
IMPORTANTE - DEBES leer este parrafo:
Terminologfa
Con el objeto de aclarar las referencias en el texto con respecto a
las teclas del ordenador, asf como del texto que forma parte de los
listados de programas, hemos adoptado los siguientes convenios, que
usaremos a partir de ahora en esta Guia.
ENTER: Teclas a las que no esta asociado un simbolo "visivo" en la
pantalla, se muestran en esta forma, siempre y cuando no den lugar
a confusion; en caso contrario se encierran entre corchetes "[]"•
QWERTYuiop?"!: Teclas que si' corresponden con un simbolo "visivo"
en pantalla, aparecen de esta forma, sin precisar si corresponden al
simbolo superior o inferior que aparece marcado en la propia tecla.
10 FOR N = 1 to 1000 : Texto que aparece en pantalla,
o lo que los comandos que has de imponer mediante el teclado, se
muestran en este estilo de letra, observa la diferencia entre el y
la O mayuscula.
Capftulo 1 Pagina 1
CPC464: INTRODUCTION
Se supone que terminas cada linea de instrucciones o de comandos
pulsando siempre la tecla ENTER, para indicarle que VALE y pase
a cumplimentar lo que le hayas dicho; por lo tanto, no la repetiremos
en el listado en lo que queda de Guia, aunque antes si' lo hayamos
hecho.
Ademas, se supone que siempre ejecutaras cada programa ejemplo,
despues de haberlo tecleado y usando el comando RUN. BASIC convierte
todas las palabras claves impuestas por teclado en minusculas, a letras
mayusculas cuando se lista el programa. Los ejemplos mostrados a
partir de ahora, usaran mayusculas para las palabras clave, dado que
asi' es como aparecen los programas al ser listados. Si tu tecleas usando
letras minusculas, sera mas conveniente para detectar los errores de
tecleado mas rapidamente, dado que las palabras clave mal deletreadas,
seguiran mostrandose en minusculas cuando se liste el programa.
1.1.1 ABRE LA CAJA DE LAS SORPRESAS
El Monitor a Color
IMPORTANTE
Por favor, consulta las instrucciones de Puesta en Marcha
detalladas al comienzo de esta Guia de Usuario, y que describe
como conectar el cable de alimentacion
de tu equipo a una clavija adecuada.
Con el ordenador conectado correctamente, tal y como se muestra
en la figura 1, enciende el monitor, y luego el ordenador usando el
interruptor deslizante del costado derecho.
Figura 1
Monitor
Conector del MONITOR
Capftulo 1 Pagina 2-
r
CPC464: INTRODUCCION
Despues de aproximadamente 30 segundos de "tiempo de calientamiento",
aparecera en el monitor:
Anstr«4 64K Hicrocomputer (vi)
91984 Anstrad Consumer Electronics pic
and Loconotive Software Lid.
BASIC i.e
Ready
Cursor
Este mensaje se conoce con varios nombres, tales como "Bienvenida",
"Restauracion", "Despertador", "Mananero" o "Saludo", etc. y lo importante
es que indica que el ordenador esta completamente RESTAURADO
a sus condiciones iniciales -una condicion que ocurre siempre que se
pone en marcha despues de haberlo apagado, y despues de imponer
por teclado, una secuencia correcta de tres teclas especiales que se
han pulsado simultaneamente. Es decir, pulsando consecutivamente
CTRL, SHIFT y ESC, y manteniendo pulsada la anterior hasta que
las tres estan pulsadas y luego soitandolas, se logra la restauracion
del sistema. Ensayalo ahora, antes de teclear ninguna otra cosa.
Ajusta el control de brillo, situado en el costado derecho del monitor.
El color esta pref ijado en fabrica, asi' que si deseas cambiar el color
de la pantalla (lo habitual es si'mbolos en oro sobre un fondo azul),
debes hacerlo mediante las instrucciones programables pertinentes,
para lo que tendras que saltar al capitulo "Lo primordial en Graficos"
y al capitulo 8 sobre palabras reservadas en BASIC. Si no te importa
que nos anticipemos un poco, aqui' hay un breve programa que te dara
una de las mejores y mas legibles combinaciones de colores para meter
textos, usando el modo de pantalla en que la resolucion es de 80 columnas
por li'nea.
Teclea:
10 MODE 2
20 INK 1,0
30 INK 0, 13
40 BORDER 13
...que tambien podrias teclear como una sola li'nea de comandos ejecutada
inmediatamente.
Si el programa anterior no significa nada para tf, o no puedes ver si
lo has tecleado correctamente, es senal de que necesitas repasar los
FUNDAMENTOS PARA PRINCIPIANTES, seccion que encontraras al
principio de esta Gui'a.
Capitulo 1 Pagina 3
CPC464: INTRODUCTION
Comprobaras que la imagen con 80 columnas es con mucho, el modo
mas provechoso para desarrollar programas -puede que te guste GUARDAR
el breve programa anterior (cuando ya hayas lei'do totalmente el capi'tulo
2) al principio de una cinta en bianco, para ahorrarte teclear cada
vez que pones en marcha el ordenador.
jPRECAUCION! Un brillo elevado en el monitor a color significa que
debes ser cuidadoso para evitar los esfuerzos visuales cuando estas
sentado muy cerca, o usar niveles de brillo que sean superiores a los
elegidos por las condiciones luminosas ambientales. En el momento
que sientas molestias en la vista, apaga y haz otra cosa, pero en primer
lugar, evita siempre:
1. Trabajar con suficiente luz ambiental para poder leer este manual
con facilidad. Si estas leyendo este manual con el reflejo de la
pantalla, es una de las situaciones que vigorosamente no recomendamos
2. Usa el mi'nimo de brillo requerido para ver lo que estas haciendo
comodamente.
3. Sientate tan lejos de la pantalla como puedas.
Una lampara de mesa situada a lo largo del monitor, ayudara a reducir
el esfuerzo visual -siempre que este situada por detras de la parte
frontal de la pantalla para evitar la reflexion.
1.1.2 El Monitor de Fosforo Verde
El monitor GT64 tiene tres controles por debajo de la parte frontal.
Estan previstos para poder ajustar el brillo (BRIGHTNESS), el contraste
(CONTRAST) (que es la diferencia entre las partes mas brillantes y
las partes mas oscuras de la imagen) y el ajuste de sincronismo vertical
(VHOLD), que permite al usuario enclavar la imagen e impedir su
"despliegue" vertical.
El mando VHOLD no requiere que lo manipules frecuentemente -y
una vez que lo hayas colocado inicialmente, te puedes olvidar de el.
El brillo y el contraste puedes ajustarlo de vez en cuando para adaptarlo
a las condiciones luminosas de la habitacion donde estas usando el
CPC464.
Usando un monitor monocromo (una pantalla de un solo color que varia
la intensidad de los caracteres mostrados para lograr el contraste entre
los diferentes elementos de la imagen), el mensaje de "salutacion"
sera el mismo que con el monitor a color (policromo), excepto en que
el texto aparecera en un verde brillante sobre un fondo verde mate
y mas tenue.
Aunque el uso extremadamente excesivo de tu ordenador con el monitor
GT64 puede llevarte a cansancio visual, la imagen generalmente MAS
SUAVE del monitor monocromo, hace que sea mucho mas comodo trabajar
con el durante un peri'odo largo.
Capi'tulo 1 Pagina 4-
CPC464: INTRODUCCION
En particular, tendras la posibilidad de sacar el mejor partido del modo
"80 columnas" (en que en cada li'nea horizontal de la pantalla puedes
colocar 80 si'mbolos) dado que la definicion o resolucion (que indica
la capacidad de mostrar un numero de diminutos elementos en la pantalla
proximos uno a otro pero sin que aparezcan borrosos, sino que continuen
siendo nitidos) de un monitor monocromo es intrinsecamente superior
a cualquiera, aunque sea el mas caro, monitor poli'cromo.
Ajusta el control de BRILLO para producir una imagen adecuadamente
iluminada sin que las "MOT AS" que forman los caracteres mostrados
en pantalla se vuelvan excesivamente borrosas.
Para "implantar" el modo de 80 columnas, basta que teclees el siguiente
programa en tu ordenador CPC464. Con ello se te ofrece una gama
de colores a elegir:
10 REM senalando format o consola
20 FOR n=0 TO 26
30 MODE 2
40 INK l,n
50 INK 0, <26-n>
55 BORDER n
60 LOCATE 15, 12: PRINT "Pulsa una tec la
para cambiar el format o de la consola"
70 a*=INKEY*
80 IF a*="" GOTO 70
90 NEXT
100 GOTO 20
Este ejemplo nos ilustra ademas un punto importante que concierne
a la presentacion y estilo de este manual. Algunas lineas en los listados
del programa sobrepasan el margen derecho establecido y las continuamos
en la linea siguiente. Es obvio, pero importante, observar que no es
preciso cuando teclees ese programa que incluyas los espacios en bianco
adicionales que aparecen en el extremo final de cada renglon; simplemente
los insertamos para "adornar" el listado y hacerlo mas "didactico".
A medida que progreses, apreciaras otras muestras de las "habilidades
del editor".
Con el programa anterior no se ilustran todas las posibles combinaciones
de la escala de grises (colores), pero si' que sacaras una buena idea
de los que estan disponibles. Cuando encuentres una combinacion que
te guste, deten el programa pulsando por dos veces la tecla de ESCAPE,
(con ello provocaras ademas un mensaje de RUPTURA o "brecha",
en que como veremos, aparece la palabra *Break*).
A partir de ahora, la Guia hara muchas referencias a detalles especi'ficos
de la opcion pertinente al monitor a color.
Capftulo 1 Pagina 5 — '
CPC464: INTRODUCCION
Programas que presentan efectos interesantes en colores y graficos,
pueden aparecer casi sin poder ser apreciados en un monitor monocromo,
aunque se ha procurado con gran cuidado producir una gama de colores
que corresponde a niveles progresivos en la escala de grises (se describe
mas ampliamenta en el capitulo 5).
La ventaja de los monitores monocromos, radica en que producen una
imagen menos crispante y fatigante y es muy conveniente al hacer
el desarrollo del programa; pero es inevitable de vez en cuando que
te sientas "picado por el agijon de la abejita computadora" y en esos
casos hay poca esperanza de que evites lo inevitable: tener tambien
la opcion de color.
1.1.3 El TV Modulador/Alimentador MP1
El MP1 es una unidad adicional que seguramente desearas comprar
si habitualmente usas tu ordenador CPC464 con el monitor monocolor
verde GT64. El MP1 te faculta para usar el ordenador con tu televisor
domestico, y gozar por lo tanto de todas las enormes posibilidades
que en el campo del color posee el ordenador CPC464.
IMPORTANTE
Consulta por favor, las instrucciones de Puesta en Marcha
detalladas al principio de esta Gui'a de Usuario, que describe
como conectar los cables de alimentacion de tu equipo
a una clavija adecuada.
Conector 5V DC
TV Domestico
Conector de antena
Conector del MONITOR
Figura 2: Conexiones para el MP1, ordenador y entrada de antena en
tu TV.
Capftulo 1 Pagina 6
CPC464: INTRODUCCION
El modulador/alimentador (MP1) debiera situarse en el costado derecho
del ordenador y sobre una mesa apropiadamente cercana al televisor
y al enchufe de suministro electrico. Como se muestra en la figura
2 de la pagina anterior.
Reduce ahora el control de volumen de tu televisor al mi'nimo -el CPC464
tiene su propio altavoz interno, por lo que no usa el canal de sonido
del televisor y reduciendo el volumen al minimo conseguiras que no
moleste el fundido propio del televisor. Luego enciende tu televisor,
y a continuacion el ordenador usando el interruptor deslizante, marcado
POWER, en el costado derecho. El pequefio testigo luminoso rojo, situado
aproximadamente en el centro del teclado, marcado ON, debera iluminarse
para indicar que esta en marcha el ordenador; con lo que ya puedes
pasar a sintonizar tu televisor y recibir la serial UHF procedente del
ordenador.
Si tienes un televisor con seleccion de canales por pulsadores, pulsa
uno de ellos para elegir un canal de reserva o poco usado. Ajusta el
control de sintonia del televisor de acuerdo con las instrucciones que
haya dado el fabricante (la serial del ordenador esta aproximadamente
en el canal 36 si tu televisor tiene un limbo incorporado), hasta que
recibas una imagen igual a esta:
Anstrad 64K Microcomputer <vl)
;rad Consumer Electron ,
and Locomotive Software Li
£1984 Am s trad Consumer Electronics. pic
BASIC i.e
Ready
Sintoniza tu televisor exactamente hasta que veas la imagen mas nitida.
La escritura aparecera en amarillo (oro) sobre un fondo azul fuerte,
aunque variara de acuerdo con las caracteristicas individuales del TV.
Si tu TV tiene un selector rotativo de programas, gira la perilla de
sintonia hasta que aparezca la imagen anterior y permanezca
perfectamente estable (como antes, corresponde aproximadamente
al canal 36).
Como la senal pasa a traves de las diversas etapas del proceso, siendo
primeramente "modulada" y despues "demodulada", se produce un
cierto deterioro en la senal de video. Los resultados no pueden por
tanto ser tan buenos como los conseguidos mediante un monitor al
que directamente se inyecta la senal de video, y tambien depende
de la calidad de tu TV; por lo que puede suceder que en el modo de
texto con 80 columnas (modo 2) los resultados logrados no sean perfectos,
en cuyo caso, debieras usar el modo 1 para imponer textos que
probablamente te resultara mas conveniente.
-Capitulo 1 Pagina 7
- CPC464: INTRODUCTION
1.2 Primeros pasos
Ahora que ya estas "conectado": el alimentador debiera estar enchufado,
los terminales del cable de video enganchados ya sea en el monitor,
ya sea en el modulador; y ya has encendido. Tu ordenador esta esperando
que le mandes hacer algo.
La imagen en pantalla de saludo o de "despertar" es el unico texto
incorporado en la memoria del ordenador que puedes mostrar en pantalla
sin que previamente tengas que imponer un comando o una instruccion
mediante el teclado. Si ya estas familiarizado con el lenguaje de
programacion BASIC, hay grandes probabilidades que inmediatamente
hayas metido un breve programa para "empezar a conoceros". El BASIC
AMSTRAD te sera familiar en muchos aspectos, y simplemente puedes
continuar tu marcha; te mostraremos un breve programa que puedes
teclear para mostrar todo el repertorio de caracteres incorporado en
tu ordenador. Este REPERTORIO de si'mbolos, y que es el termino
que usamos para describir todo el surtido completo de cifras, letras,
signos, y otros caracteres no visivos en pantalla, pero que tambien
pueden ponerse en accion mediante el teclado.
Otros de los caracteres del repertorio no son directamente accesibles
pulsando ninguna tecla, sino que solamente estan disponibles para ser
mostrados usando la instruccion PRINT CHR$(<numero>) que posteriormente
te describiremos.
Esto es debido a que cada elemento almacenado en la memoria del
ordenador, lo hace en unidades de informacion denominadas "bicos",
entre otras cosas. Asi' por ejemplo, en ingles se dice "bytes" que por
su significado primitivo "mordisco", les destaca el hecho de ser la
cantidad de informacion manejada en cada operacion elemental.
HABITUALMENTE, y como puedes observar en el Apendice II, un bico
(byte) es simplemente cada una de las 256 combinaciones diferentes
que pueden hacerse con una serie de OCHO elementos binarios (que
puedes simbolizar como quieras: 1/0; alto/bajo; ping/pong; zig/zag).
Pero como la gran mayoria de ordenadores tienen que usar como mi'nimo
8 bits por cada caracter almacenado, otra de las facultades del CPC464
es que aprovecha todas esas 256 posibles combinaciones, y no se queda
simplemente satisfecho con las 96 combinaciones que la mayoria de
los demas manejan, desperdiciando las otras 160 posibilidades.
Esa gama standard de caracteres es pues un "subconjunto" del repertorio
del CPC464. Por tanto, ese surtido de 96 caracteres, tambien conseguido
en el CPC46^, es lo que se conoce a lo ancho del mundo informatico
como el sistema "ASCII", siglas derivadas de:
American Americano
Standard Estandar
Code for Codigo para
Information Intercambio de
Interchange Informacion
Capitulo 1 Pagina 8 — —
CPC464: INTRODUCCION
...y es primordialmente un sistema que asegura que la informacion
que se intercambia o transmite de un ordenador a otro es en una forma
reconocible por ambos. Es quiza el unico aspecto de informatica que
verdaderamente es universal, asi' que te aconsejamos concretamente
que te familiarices con todos los aspectos del ASCII. El Apendice III
no solo presenta el ASCII, sino que ademas te muestra los caracteres
adicionales disponibles en el CPC464 y sus correspondientes codigos
numericos, en notacion decimal, hexadecimal y binaria.
Alguno de esos otros caracteres adicionales del repertorio del CPC464,
tambien pueden mostrarse en pantalla usando una combinacion de la
tecla de control, marcada CTRL en el teclado, y de otras teclas normales,
-pero no te preocupes sobre esto todavia, hasta que no comprendas
la funcion desempefiada por la tecla de control, porque puedes hacer
mas dafio que beneficio si empiezas a pulsarlas al azar.
1.2.2
Para ver exactamente como todos estos caracteres aparecen en la
pantalla, teclea el programa que te presentaremos en breve y asi' satisfaras
tu curiosidad y empezaras a practicar con el CPC464. Este programa
te ayudara a adquirir confianza tanto en la simplicidad de la programacion,
como en el hecho de que cuando consigues el "saludo" al poner en
marcha el ordenador, es muy probable que no encuentres ningun problema
"circuital", y que el CPC464 esta simplemente esperando ser programado
y nutrido con la informacion correcta para empezar a trabajar.
(Si cometes un error cuando teclees ese programa, salta a la seccion
1.2.7 para ver si puedes corregir el error sin necesidad de volver a
meter el programa desde el principio).
Cuando teclees el programa en tu ordenador, no importara si usas
letras minusculas (abc), o letras mayusculas (ABC), conseguidas pulsando
al mismo tiempo la tecla de turno o cambio, marcada SHIFT. El ordenador
aceptara el programa en una y en otra forma. Observa que DEBES
delimitar las palabras clave usando espacios en bianco u otros delimitadores
(coma, punto y coma, etc., segun convenga) en las posiciones resenadas,
dado que el BASIC AMSTRAD tambien permite que uses esas palabras
reservadas (completamente enunciadas en el Apendice VIII) dentro
de los nombres de las variables, cuando no provoca confusion.
El aspecto "fisical" del teclado aparece en la figura k. Y hemos mencionado
la palabra "fisical" dado que muchas de las teclas estan disponibles
para que puedan ser definidas por el usuario de forma que la funcion
que ejerzan o el si'mbolo o si'mbolos que presentan al ser pulsadas es
dependiente de lo que el usuario haya definido. Ya lo describiremos
mas ampliamente en las secciones subsiguientes.
Capftulo 1 Pagina 9
CPC464: INTRODUCCION
tjwiTlWW]1juuuuuuuuiim^
m
AMSTRAD
fi4k COLOUR PERSONAL COMPUTER
CPC464 031
BOB
00000000000000
00000 0000000
00000000000E
]0
000
000
000
000
Figura 4: El Teclado del CPC464
Al pulsar la tecla ENTER se logra que el comando o instruccion que
tecleas en el ordenador, y que hasta ahora ha sido simplemente "escuchado"
por el y mostrado en la pantalla para comprobar que no te equivocas,
tiene como efecto que interprete esa pulsacion final de ENTER como
que ya VALE y que debe dejar de escuchar y pasar a cumplimentar
lo que le has mandado: inmediatamente si es un comando, o simplemente
almacenarlo en su memoria si es una instruccion (lo que sabe distinguir
porque la instruccion va precedida del numero de li'nea correspondiente).
La tecla ENTER se menciona frecuentemente como "RETURN" porque
proviene de cuando se usaban mas las impresoras que las pantallas,
e indicaba que el ordenador debi'a hacer un "retorno del carro" de impresion
para comenzar en la li'nea siguiente, de forma similar a la palanca
usada primitivamente en las maquinas de escribir. El termino ha continuado,
y se ha incrustado para siempre dentro del repertorio ASCII, donde
se simboliza ese caracter no visivo mediante la abreviatura "CR".
Teclea ahora el programa que estamos comentando:
10 FOR N = 32 TO
20 PRINT CHR*(N) :
30 NEXT N
RUN
255
■Capitulo 1 Pagina 10-
CPC464: INTRODUCCION
1.2.3
Observa lo que esta sucediendo en la pantalla:
Anstrad 64K Nicroconputer (vl)
©1984 Anstrad Consumer Electronics pic
and Locomotive Software Ltd.
BASIC i.e
Readu
10 FOR N = 32 to 2SS
20 PRINT CHR*<N>;
30 NEXT N
run
! "#*X** < >*+, - ./81234S6789 : ; <=>?8ABCDEFC
HIJKLMNOPQRSTUUWXY2C\3t_ x abcdefghiJkl«no
Ready
Al ordenador le has pedido con ese programa que muestre todo el
repertorio completo de caracteres que posee. Y si no te obedece, es
que has cometido un error al teclear el programa, y te lo habra hecho
notar por algun mensaje o de alguna forma; asf que pasa al parrafo
1.2.7 y mira como puedes resolver el problema.
Suponiendo que todo esta bien y que tienes el resultado requerido,
examinemos lo que subyace en los caracteres mostrados -te ayudara
a comprender exactamente como tu CPC464 se comunica mediante
este repertorio de caracteres.
El primer punto a observar es que no instruimos al ordenador para
que EXPONGA el grupo "abcdefghijklmn... etc", lo que se le pide que
haga es:
PRINT CHR*(N)
Donde N es solo una escritura taquigrafica conveniente para designar
una variable; y la eleccion de esa letra N es completamente arbitraria.
Sucede justamente que es la favorita de los matematicos en este tipo
de aplicaciones. En informatica, una variable es simplemente un lugar
de la memoria donde se almacena un dato que puede ser tratado dando
simplemente el nombre asociado a ese lugar, en este caso la N. Y
lo llamamos variable porque el dato alojado en ese lugar de la memoria
puede ser variado de acuerdo con las instrucciones que demos en el
programa. Tambien podemos guardar numerds como el 5, de una forma
prefijada o constante. Tambien lo guarda en memoria, pero el ordenador
no le asigna un lugar especial con un nombre especifico, y por tanto
no puede ser variado con una instruccion. Por tanto, el numero 32
o el 255 que aparece en el programa, se consideran como constantes.
Capftulo 1 Pagina 11.
CPC464: INTRODUCCION
Y tanto las variables como las constantes son datos para el ordenador,
aunque de distinta indole. Unos son numericos o NUMERALES, y a
los otros como ya veremos, los llamamos LITERICOS, literales o
alfanumericos.
^Pero como sabe el ordenador la diferencia?
Si hubieramos declarado la letra N como un caracter literal, habriamos
tenido que teclear N encerrada entre comillas.
Y el ordenador nos habri'a respondido con el mensaje de error sintactico
porque no comprenderia la li'nea de instrucciones 10 que diria "N".
Simplemente, usando N de esta manera, le hemos dicho al ordenador
que N va a ser una variable numerica. La definicion de la instruccion
FOR en el lenguaje BASIC, exige que esa palabra clave sea seguida
por una variable numerica, de forma que el ordenador siempre supone
que lo que va detras de la palabra FOR es simplemente eso.
Tambien le hemos dicho al ordenador que N = 32 to 255. Y con eso
le hemos declarado que la gama de valores de esa variable es en efecto
una serie consecutiva de valores, empezando por 32 y terminando en
255.
Habiendo resenado asi' esta instruccion y declarado esta variable numerica,
continuamos instruyendo al ordenador con lo que queremos que haga
despues: y es lo que le reflejamos en la siguiente linear
20 PRINT CHR*(N) ;
Eso le dice al ordenador que debe convertir el valor que en ese momento
tenga la variable numerica designada con N, en el caracter que corresponda
a ese valor. La funcion CHR$(N) es la forma convenida con BASIC
para que efectue esa tarea de conversion. Y habiendo examinado en
su memoria el valor que corresponde a la variable numerica designada
con la letra N, y calculado el caracter correspondiente, simplemente
lo EXPONE (PRINT) en pantalla, con lo que ya ha cumplimentado esa
instruccion.
El punto y coma al final de la li'nea le indica al ordenador que no envie
hacia la pantalla el caracter de "retorno de carro" ni "avance de li'nea",
para que asi' el siguiente caracter que tenga que exponer no aparezca
en la columna de la izquierda y en la siguiente li'nea de la pantalla,
tal y como ocurriri'a automaticamente si no pusieramos el signo de
punto y coma. Es decir, si no lo pusieramos, expondria los caracteres
uno debajo de otro, formando una columna en la pantalla, en lugar
de uno despues de otro, -formando una pila en la pantalla.
■Capftulo 1 Pagina 12-
CPC464: INTRODUCCION
La siguiente instruccion le dice al ordenador que cuando haya efectuado
esta tarea con el primer numero de la serie senalada en la instruccion
FOR (el 32) debe volver a la linea donde esta resenada la instruccion
FOR, y volver a hacer la misma tarea pero con OTRO valor (y podi'amos
decir el SIGUIENTE) que corresponda a la variable N. Este proceso
repetitivo se conoce como bucles, o una serie de "rondas" en que se
efectua una determinada tarea en cada ronda. Y es uno de los mas
fundamentales y frecuentes aspectos de la programacion y operacion
con ordenadores. Este bucle que empieza con la instruccion FOR y
termina con la instruccion NEXT, es uno de los rasgos fundamentales
de la informatica, y aparece en todos los lenguajes de programacion
sea en una forma o en otra. Ahorra tecleo manual con tareas reiterativas
y rapidamente llegaras a usarlo en tu propia programacion.
Cuando el numero de rondas efectuadas coincide con el li'mite de la
serie declarada en la instruccion FOR, (el 255), la operacion cesa porque
el bucle se ha terminado, y el ordenador examina la linea que va detras
de aquella donde aparece la instruccion NEXT. En este caso, la que
va detras de la linea 30, y como no hay ninguna, simplemente termina
la ejecucion del programa, saca en pantalla el aviso Ready, para indicar
que esta PREPARADO'para recibir nuevos comandos o instrucciones.
Obviamente, puedes volver a decirle que repita la ejecucion del programa.
El programa ya esta conservado en la memoria en forma segura, y
permanecera alii' hasta que mandes al ordenador lo contrario; o hasta
que quites la alimentacion, en cuyo caso, todos los datos variables
y constantes, y los programas se habran perdido a no ser que los hayas
GUARDADO en el cassette como medida de seguridad.
Este programa ilustra ciaramente un punto fundamental en informatica:
todo lo que el ordenador hace esta relacionado con numeros. El ordenador
ha mostrado su repertorio de caracteres, con letras, cifras, signos
de puntuacion y un surtido de si'mbolos especiales; y lo ha hecho, tomando
como referenda para cada caracter mostrado un numero. Cuando pulsas
la tecla marcada A, el teclado envi'a hacia las entranas del ordenador
un numero asociado con esa A y de alii' sale hacia la pantalla ese numero
(u otro) que los circuitos de pantalla interpretan y reconocen como
correspondiente a la letra A y por tanto, muestran la A en pantalla.
Por consiguiente, a cada dato le corresponde un codigo numerico que
es el que realmente se manipula dentro del ordenador, y se convierte
a informacion adecuada a las personas cuando es necesario recibir
un dato de ellas (entrada por teclado) o mostrarles algun dato (salida
por pantalla).
Cada caracter tiene pues un numero inherentemente asociado, y esa
es la lista que aparece en el Apendice III de este manual.
-Capftulo 1 Pagina 13-
CPC464: INTRODUCCION
1.2.*
Por favor, no te preocupes si no comprendes todos los tecnicismos
y jerga usada en esta pagina. Es importante explicar precisa y
completamente como el ordenador cumplimenta tus instrucciones y
consigue los resultados que le pides, pero tambien es probable que
los comprendas claramente si cuidadosamente examinas las explicaciones.
Sin embargo, si encuentras esta seccion bastante complicada, saltatela
y pasa a la seccion 1.2.5 (ya podras volver mas adelante).
Por ejemplo, DECIMOS que el codigo -ese numero en estrecha
correspondencia con cada caracter-, de la letra A es 65. y que el codigo
de la a es 97.
Pero a poco que pienses, llegaras a la conclusion de que solo es una
forma de hablar. En realidad, dentro de la maquina no hay ni A ni
97. No puede haberlo. Lo que si' hay es OCHO puntos en los circuitos
electronicos internos, que examinados con un voltimetro uno a uno,
nos irian diciendo: no hay voltios, sf hay voltios, no hay voltios, no
hay voltios, no hay voltios, no hay voltios, sf hay voltios. Y comprenderas
que hablar asi' es largo y con muchas posibilidades de confusion. Por
lo tanto, abreviamos y consideramos a esos OCHO puntos como un
solo sitio, (de ahi' el octeto, como tambien se llama al bico), y decimos
que en ese punto hay un 97 cuando se ha pulsado la tecla marcada
con A en el teclado.
lY por que 97 y no tropecientos savanta y nove? Bien, es 97 y no
otro numero porque todo esta basado en el SISTEMA DE NUMERACION
EN BASE DOS, y los sistemas de numeracion ya en los tiempos de
Pitagoras llevaban siglos de existencia, y no habia ordenadores.
Claro que la notacion decimal que usamos en nuestra vida diaria es
tan natural que pensar en otro sistema de numeracion puede parecer
no solo complicado, sino hasta aberrante. Nos es natural porque tenemos
10 dedos en las manos, pero los ordenadores no. Y en los circuitos
electronicos y en los interruptores es mas facil detectar si hay tension
o no. Por eso les es natural usar el sistema binario. Y no es complicado,
como mas adelante veremos. Alguien simplemente lo comparo con
la destreza necesaria para cambiar sus habitos de comida, usando el
cuchillo y el tenedor en manos contrarias a las que estas acostumbrado.
Y ademas, una vez comprendida esa notacion, muchi'simas de las cosas
sobre ordenadores empiezan a encajar y empieza a ser patente la elegante
estructura de los sistemas de numeracion usados internamente.
Una vez que en las entranas del ordenador se ha traducido la pulsacion
de la letra A detectada en el teclado, a su codigo correspondiente,
y cuando le toca mostrarla en pantalla, consulta tambien sus circuitos
internos para ver el tipo que tiene ese caracter. Y recuerda que el
tipo ya desde los tiempos de Gutenberg, que invento la imprenta, es
la manera de referirse a la forma especi'fica que tiene cada si'mbolo.
Capitulo 1 Pagina 1*-
CPC464: INTRODUCCION
Pues bien, para definir ese tipo, en fabrica se preparan 64 puntos en
los circuitos electronicos con valores inalterables de sf tension/no tension
que permiten al ordenador mostrarlo en pantalla. Y otra vez, no solo
para abreviar, esos 64 puntos consecutivos se dividen en OCHO grupos
(octetos o bicos) con 8 puntos cada uno.
Y ademas, los circuitos encargados de presentar la informacion en
la pantalla, usan esas senales electricas para hacer OCHO trazos, con
OCHO motas cada uno, y los coloca sucesivamente uno debajo de otro,
formando una cuadri'cula diminuta, tal y como aparece en la figura 5:
3S
ipnri
■ill
i rm m \
SHFI
Figura 5: Una cuadncula en bianco, con la a minuscula y con la A
mayuscula.
Por tanto, podemos asimilar la pantalla a un papel cuadriculado, en
que cada caracter ocupa uno de los cuadritos; y ademas, cada uno
de estos cuadritos vuelve a estar reticulado en forma de 8 filas de
8 columnas cada una, y lograndose el tipo o forma del caracter iluminando
selectivamente las 64 motas que resultan. Pero mejor es mirarla como
8 trazos horizontales (que corresponden a 8 bicos) situados verticalmente
uno debajo de otro.
Si no encuentras el tipo de caracter que deseas dentro del repertorio
de 256 que esta incrustado en la memoria del ordenador CPC464, tambien
puedes definir el tipo que tiene y luego mostrarlo en pantalla, si usas
las instrucciones disponibles en el BASIC AMSTRAD usando las palabras
reservadas SYMBOL y SYMBOL AFTER, que estudiaremos en el capitulo
8.
Estos caracteres definidos por el usuario, usan una de las combinaciones
posibles que pueden hacerse iluminando selectivamente o no las 64
motas mencionadas. Y si analizaras cuantas combinaciones posibles
puedes hacer de esa manera te resultaria una cantidad de combinaciones
que sobrepasa los 18 trillones. Si', he dicho 18 trillones, es decir 18
seguido de 18 ceros; y ademas puedes agrupar varios de esos tipos
para que aparezcan en pantalla ocupando cuadritos contiguos y formar
figuras mas complejas, por lo que la cantidad de caracteres y figuras
definidas por el usuario esta unicamente limitada por tu capacidad
de imaginacion y por tu tiempo.
-Capftulo 1 Pagina 15-
CPC464: INTRODUCTION
1.2.5 Volviendo al programa
El resultado del primer programa que has tecleado no tiene muy buena
apariencia. Todavia quedan restos del mensaje de salutacion en la parte
superior de la pantalla. Tendri'a mejor presentacion si dejaramos la
pantalla en limpio antes de comenzar a exponer otras cosas. Anadiremos
una linea en el programa para que ar regie esto.
Teclea lo que viene a continuacion en la linea donde esta situado el
cursor (que ya sabes, es ese pequeno rectangulo solido e iluminado
inmediatamente debajo y a la izquierda del aviso Ready, y si no sabes
cual es, no se que estas haciendo leyendo esto antes de los Fundamentos!).
5 CLS
RUN
Observa como la pantalla queda completamente en bianco antes de
que el ordenador empiece a escribir el repertorio de caracteres a partir
de la esquina superior izquierda.
Esto demuestra tambien otro aspecto de los lenguajes de programacion,
y es que no importa en que orden teclees tus instrucciones ni que tampoco
necesitas realmente listar el programa para anadirle una instruccion mas.
El ordenador siempre ordena (y por eso se llama ordenador) las instrucciones
de acuerdo con un orden ascendente de numeros de linea, antes de
que comience a ejecutar el programa. Compruebalo listando el programa
y viendo que la ultima tecleada ya esta en el sitio que le corresponde.
1.2.6 LISTANDO
Puedes comprobar facilmente cual es el programa que el ordenador
tiene almacenado en su memoria, pidiendole que lo liste. Teclea:
LIST
y el resultado en la pantalla sera:
5 CLS
10 FOR N = 32 TO 255
20 PRINT CHR*(N) ;
30 NEXT N
Ready
Este programa permanecera en la memoria del CPC464 hasta que hagas
algo de lo siguiente.
*
*
Apagar el ordenador
Restaurar las condiciones iniciales, pulsando CTRL, SHIFT y ESC
sucesivamente, y manteniendo pulsada cada una hasta que sueltes
las tres simultaneamente.
* Cargues otro programa a partir del cassette, o lo cargues y ejecutes
mediante RUN.
.Capitulol Pagina 16
CPC464: INTRODUCTION
* Teclees el comando NEW que pone a cero todas las variables y
vacia la memoria que contiene el programa, sin restaurar los valores
iniciales del modo de pantalla ni de los colores.
Vamos ahora a preparar una de las teclas funcionales para que en cuanto
se pulse, ella sola efectue automaticamente la misma tarea que si
hubieramos tecleado ENTER CLSsLIST ENTER , porque con esa
facilidad aceleramos el desarrollo de los programas enormemente.
Para hacerlo, teclea:
KEY 138, CHR*(13)+"CLS:LIST"+CHR*<13)
Y ahora pulsas la tecla con el punto decimal situado en el teclado
numerico separado, que es el que corresponde a la TECLA (KEY) con
codigo 138.
Hasta 32 teclas pueden pre-programarse de esta manera, y puedes
elegir cualquiera de las del teclado para "redefinir" el valor que les
corresponde, en caso de que quieras usar el teclado numerico separado
para su proposito original. Consulta la descripcion del comando KEY
en el capftulo 8.
Si el tuyo es un programa largo, puedes definir esa tecla como sigue:
KEY 138, CHR*(13)+"CLS!LIST"
con lo que al pulsarla, te permitira teclear a continuacion una gama
de numeros de li'nea que desees; o simplemente pulsandola dos veces
sucesivas te presentara el listado complete
Cuando estas haciendo experimentos con los colores, es posible que
te veas perdido con una combinacion de colores donde no es posible
ver lo que aparece en pantalla porque la tinta del papel y de la pluma
es la misma. Para ello puedes pre-programar otra tecla:
KEY 139, CHR* (13) +"mode2: ink 1, 0: inkO, 9"+chr* ( 13)
con lo que solo tienes que pulsar la mas pequefia de las dos teclas
ENTER (la que esta en el teclado numerico separado) para que cuando
te encuentres en la situacion mencionada, vuelvas a la situacion base
con una combinacion de colores visibles en pantalla (no perderas el
programa en memoria).
Las teclas definidas por el usuario son restauradas siempre que se
restauran las condiciones iniciales de la maquina, dado que tienen que
estar disponibles para las instrucciones de los programas; por lo tanto,
una vez que hayas pre-programado tus favoritas, escribelas en un programa
y guardalas en la cinta para poder recuperarlas facilmente.
■Capftulo 1 Pagina 17-
CPC464: INTRODUCCION
1.2.7 Lo primordial deeditar
Inevitablemente cometeras equivocaciones al teclear los programas.
Bienvenida a esta seccion a todos los que han saitado aqui' desde la
seccion 1.2.2.
En el CPC464 se ha intentado hacer la correccion de esas equivocaciones
tan simple como es posible, y al mismo tiempo evitando los problemas
de volver a escribir accidentalmente caracteres que no querias cambiar.
El grupo de teclas que controla el movimiento del cursor (ese pequeno
rectangulo solido que define donde va a aparecer el siguiente caracter
que teclees) proveen medios para dirigir la atencion del ordenador
a aquella parte del texto que hay en pantalla que desees alterar.
Al cometer un error en una linea numerada, v.g.:
10 FOR N - 332 TO 255
dispones de varias opciones:
1. Puedes pulsar ENTER y volver a teclear toda la linea. La linea
incorrecta sera borrada de la memoria y sustituida por la linea
que teclees usando ese mismo numero de linea.
2. Puedes pulsar la tecla de retroceso del cursor y desplazarlo hasta
que se situe encima del si'mbolo incorrecto.
10 FOR N = 3g2 TO 255
Observa que el caracter situado en la misma posicion que el cursor
aparece en video inverse En otras palabras, el caracter que normalmente
tiene el mismo color que el cursor, adopta ahora el mismo color que
el fondo (el papel) de manera que se transparente a traves del cursor
que esta situado precisamente encima de el.
Pulsa ahora la tecla de BORRAR, marcada CLR, y el caracter situado
en la misma posicion del cursor desaparecera, y los situados a la derecha
se moveran para que no queden huecos:
10 FOR N = 32 TO 255
Pulsa otra vez ENTER, y esta linea ya corregida, sera la que el ordenador
recuerde. El cursor no tienes porque llevarlo hasta el extremo de la
linea, porque el ordenador recoge toda la linea, sin tener en cuenta
la posicion del cursor en ese momento.
3. Tambien puedes hacer que el cursor se situe en el caracter
inmediatamente a la derecha del que deseas borrar:
10 FOR N = 33@ TO 255
Capitulo 1 Pagina 18-
CPC464: INTRODUCCION
Ahora pulsa la tecla de QUITAR (marcada DEL) con lo que desaparecera
el caracter situado inmediatamente a la izquierda del cursor, al mismo
tiempo que se desplazan tanto el cursor como el resto de caracteres
a la derecha sin que se vea afectado el situado precisamente en la
posicion del cursor, solo el de la izquierda.
Pulsa ENTER y la lfnea quedara almacenada en la memoria como antes.
10 FOR N = 32 TO 255
1.2.8 Considerandos
Los metodos anteriores son buenos cuando detectas el error antes de
que llegues a terminar la lfnea pulsando ENTER. La mayor ia de los
errores, sin embargo, permanecen inadvertidos en ese momento y solo
salen a la luz cuando intentas ejecutar el programa, momento en que
el ordenador te responde con un mensaje de error. (Apendice VIII).
Unas cuantas clases de errores provocaran que el ordenador exponga
la linea defectuosa, con el cursor de edicion situado en la primera
columna (extremo izquierdo del papel). Si ese es el caso, puedes utilizar
directamente los procedimientos mencionados anteriormente, como
si hubieras detectado el error antes de concluir esa linea del programa
pulsando ENTER.
Si al producirse el error, el ordenador no te muestra la linea con la
equivocacion, sino simplemente te resefia el numero de linea, tendras
que listar el programa para examinar esa linea y poder corregir el
problema.
1.2.9 Editando con el Cursor de Copiar
Primero lista el programa. (Continuamos suponiendo que estas trabajando
con el programa breve de ensayo que estamos comentando, ya que
el listado cabe en un solo pantallazo).
5 CLS
10 FOR N = 32 TO 255
20 PRINT CHRS(N) ;
30 NEXT N
El error esta en la linea 20, hay una S en lugar del signo $, que indica
una funcion literal (el $ obliga al ordenador a considerar que los caracteres
deben tomarse LITERALMENTE al pie de la letra, y que no puede
hacer operaciones de indole cuantitativa con ellos). Puedes volver a
teclear la linea 20 desde el principio y volverla a meter, o bien puedes
usar el llamado Editor de plana (o de pantalla, para distinguirlo del
caso anterior en que decimos Editor de lfnea) en la forma siguiente:
Capftulo 1 Pagina 19 — '
CPC464: INTRODUCCION
Manten presionada la tecla SHIFT (cualquiera de las dos que hay en
el teclado) y pulsa la tecla que hace subir al cursor, marcada ( + ).
Puedes bien ir pulsando repetidamente para que suba una posicion a
cada pulsacion, o puedes mantenerlo pulsado el tiempo suficiente como
para que intervenga la repeticion automatica disponible en tu ordenador.
En el instante en que levantes tu dedo de la tecla, se detendra el cursor;
y con un poco de practica, pronto te familiarizaras con estos efectos.
Si te has pasado, puedes volver con la tecla que baja el cursor, marcada
(i) al mismo tiempo que como antes, mantienes presionada la tecla
SHIFT.
De esta manera, se provoca que aparezca el "CURSOR DE COPIAR"
que es distinto del cursor principal aunque tengan la misma forma,
y que se vaya desplazando hasta alcanzar la linea que deseas modificar.
Ahora debes situarlo en el primer caracter de la linea a corregir.
5 CLS
10 FOR N = 32 TO 255
@0 PRINT CHR*(N) ;
30 NEXT N
Ready
Si intentaras llevar el cursor principal a esa linea que quieres corregir,
o sea, usaras las teclas de desplazamiento del cursor, sin mantener
simultaneamente pulsada la tecla SHIFT, el ordenador no lo aceptari'a
como una accion valida, dado que unicamente los caracteres tecleados
directamente y detras del cursor principal son los que pueden formar
parte de instrucciones y comandos aceptables por el ordenador.
Si comenzaras asi' y hasta reescribieras parte de la linea, podrias facilmente
escaparte del enredo en que te has metido, pulsando la tecla ESC ANTES
de pulsar cualquiera de las teclas ENTER o de usar alguna de las teclas
funcionales que contenga CHR$(13). Si accidentalmente tecleas el
comando NEW y lo concluyes pulsando ENTER, habras perdido para
siempre todo tu programa. Asi' que debes ser cuidadoso para ahorrarte
problemas.
Una vez que has comenzado a teclear una li'nea, si intentas salirte
de ella sin pulsar previamente ENTER, el ordenador emitira un pitido
en cuanto llegues a un li'mite ilegal. En cuanto te saigas del problema
pulsando ENTER, no se habra perdido nada del programa, a no ser
que hayas tecleado un numero de li'nea que sea valido al principio de
todo, en cuyo caso la li'nea, si existe, cuyo numero coincida con el
tecleado, sera "reescrita" como resultado de esa operacion, y tendras
que examinarla para ver como tienes que corregirla.
Capitulo 1 Pagina 20-
CPC464: INTRODUCCION
Cuando hayas situado el cursor de copiar correctamente, sigue repicando
con la tecla de COPIAR, marcada COPY hasta que dicho cursor llegue
a la posicion donde quieres hacer un cambio. (Cuando te acostumbres
a la velocidad del cursor de copiar, seras capaz de mantener pulsada
la tecla COPY el tiempo suficiente como para situarlo certeramente
en una sola tacada).
5 CLS
10 FOR N = 32 TO 255
20 PRINT CHR0(N> ;
30 NEXT N
Ready
20 PRINT CHRB
Ahora suelta la tecla COPY y pulsa la marcada con el signo $, que
aparecera debajo en la linea que esta escribiendose con el cursor
PRINCIPAL, que por supuesto se desplazara una posicion a la derecha
como siempre.
20 PRINT CHR*«
Sin embargo, el cursor que COPIA tiene que ser desplazado para que
se salte esa S erronea, y para ello manten pulsada la tecla SHIFT al mismo
tiempo que pulsas una vez la tecla de avance de cursor. Con ello, el
cursor de copia descansara sobre el parentesis de apertura. Ahora sueltas
la tecla SHIFT y mantienes pulsada la tecla COPY hasta que llegue al
final de esa linea de instrucciones; en ese momento pulsaras ENTER para
indicar que has concluido la operacion, y la linea ya corregida tal y como
aparece en la parte inferior de la pantalla, sustituye a la linea incorrecta
que aparece en el listado.
Puedes combinar todos estos metodos simplemente copiando enteramente
la linea del programa defectuosa, y antes de concluir la operacion pulsando
ENTER, pasar a la EDICION DE LINEA, usando las posibilidades asociadas
al cursor principal tales como directamente las teclas de desplazamiento
del cursor y las teclas de borrado, (CLR) y quitado (DEL) de caracteres.
Para ello, manteniendo pulsada la tecla CTRL, pulsas la tecla de avance
de cursor o de retroceso de cursor, con lo que llevaras de un solo golpe
el cursor al extremo derecho o al extremo izquierdo de la linea que se
esta editando.
Practica y veras que es mas facil no solo a la hora de manejarlo en la
practica, sino tambien mucho mas facil de lo que parece cuando se esta
explicando en un texto.
Finalmente, tambien puedes pasar a la edicion (recuerda que es palabra
aprovechada para hablar de correccion) tecleando:
EDIT 20
El ordenador respondera, mostrandote dicha linea 20 en la forma:
gO PRINT CHR*(N) ;
Capitulo 1 Pagina 21 — ■
CPC464: INTRODUCCION
Ahora puedes usar directamente las teclas de cursor junto con las teclas
CLR y DEL, tal y como te hemos comentado, y cuando estes satisfecho
con el resultado simplemente pulsa ENTER para indicar que ya VALE.^
Si te metes en algun li'o con la edicion, pulsa ESC y lista la instruccion
de nuevo. La linea que se estaba editando cuando has pulsado ESC no
se ha visto alterada.
Ahora lista una vez mas, y veras aparecer la version corregida del
programa, y si no lo esta, pues vuelve a ensayarlo otra vez.
Hasta ahora, solamente hemos comenzado a explorar el funcionamiento
normal del CPC464. Vamos a echar una mirada a los otros dos modos.
Teclea:
MODE
RUN
Observa que primero se limpia la pantalla, y luego el programa muestra
el repertorio de caracteres, pero con solo 20 en cada renglon de pantalla:
Sfc * < >-**--•- - — -
= i < = > ■?"<* " —
— QRSTUUMX
Para volver al modo original y normal, teclea:
MODE 1
RUN
Y ya hemos regresado al principio. Para observar la imagen en el modo
de 80 columnas, teclea:
MODE 2
RUN
■"«■/*' <>*♦,-. /0ia34S6789:;<:>?»ftBC»EFGHIJiaJ«0PfiRSTU»ayZ[\]t x abcdefgMJklNM
Reaay
itf8Mt*H*iM*« i m»
Capftulo 1 Pagina 22-
CPC464: INTRODUCCION
Ya hemos comenzado a trabajar, y ya debieras haber satisfecho parte
de tu curiosidad inicial. Los usuarios avanzados ya estaran -me lo imagino-
preparandose para convertir sus programas favoritos, en versiones que
puedan ejecutar con este potente dialecto de BASIC. Los usuarios menos
familiarizados con el BASIC deben proseguir a traves de las secciones
"primordiales" para conseguir una panoramica sobre las facetas del BASIC
que son especfticas en esta maquina.
■ Capftulo 1 Pagina 23-
CASSETTE (Datacorder)
2. Cassette (Datacorder)
Manipulando el sistema de almacenamiento en cinta.
Temas tratados en este capftulo:
* Similitudes y diferencias entre los cassettes de voz y de
datos.
* Cargando programas grabados en cinta cassette
- la cinta de Bienvenida
* Las opciones de velocidad de transferencia de datos
* Guardando programas en cintas cassettes
* Errores
La memoria del CPC464 solo es capaz de conservar la informacion
mientras se suministre energia electrica al ordenador. En la terminologia
informatica, se dice que la memoria es un medio de almecenamiento
"volatil" a causa de su poca retentividad. Si quieres conservar los
programas y los datos cuando se interrumpe el suministro de energia
(y alguna vez tendras que apagar el ordenador) deben ser grabados en
la cinta magnetica contenida en la cassette, o en otro medio de
almacenamiento no volatil como los diskettes.
2.1 Controles del Cassette
En la parte derecha del teclado del ordenador, encontraras un equipo
cassette, identificado comercialmente como DATACORDER, y que te
presentamos en la figura 2.1. La mecanica de esta DUCTORA de cinta
cassette es esencialmente la misma que la de los equipos de audio para
la grabacion y reproduccion de sonidos; excepto en que la electronica
que controla los mecanismos de arrastre, grabacion, etc. esta
especfficamente optimizada para usar el cassette como medio de
almacenamiento de informacion "digital".
Figura 2.1: La forma correcta de insertar el cassette.
— Capftulo 2 Pagina 1
CASSETTE (Datacorder)
Igualmente, la operacion de la fila de teclas situada en la parte superior
delantera del cassette es igual que para la mayoria de los equipos de
audio-cassette:
•
REC
PLAY
REW
F. F.
STOP
EJECT
PAUSE
Figura 2.2: Los controles del cassette Datacorder CPC464.
Observa que todas estas teclas de control requieren ser presionadas (no
podemos decir pulsadas) de forma mas firme que las teclas empleadas
para imponer informacion en el ordenador.
REC = Opera simultaneamente con PLAY para grabar datos cuando
exigimos al ordenador que asi' lo haga. No puede actuar a no ser que
se haya metido en el cassette una cinta cuya lengueta de proteccion
ante grabacion (figura 2.2) y se haya bajado la tapa del cassette.
Para que efectue su labor, debes oprimir la tecla REC y mientras la
mantienes presionada, oprimir la tecla PLAY. El ordenador comenzara
a transferir datos de la memoria al cassette cuando cumplimente la
instruccion pertinente, o cuando ejecute el comando SAVE impuesto
directamente por teclado.
PLAY = LECTA informacion de la cinta (y "lectar" es un aumentativo
de leer) para trasvasarla a la memoria del ordenador. Puedes usar el
comando LOAD simplemente para cargar en la memoria del ordenador
la informacion extrafda de la cinta, o el comando RUN para que ademas
de cargarlo lo ejecute inmediatamente. Ambos puedes darlos como
instrucciones en un programa, o como comandos directos por teclado.
Ambas teclas REC y PLAY se reponen automaticamente cuando el
mecanismo de arrastre de la cinta detecta el final del carrete.
REW = Rebobina la cinta, pasandola del carrete izquierdo al carrete
derecho. No hay conclusion mecanica de esta funcion al llegar al extremo
de la cinta, por lo que no debes dejar el cassette REBOBINANDO (REWIND)
si no quieres que el motor de arrastre se sobrecaliente.
[STOP/EJECT] = PARA cualquier operacion que se este efectuando en
el cassette, reponiendo las teclas a su posicion normal. Si se pulsa por
segunda vez esta tecla, ALZA la tapa del cassette para que puedas sacar
la cinta o meter otra. La cinta no puede sacarse hasta que haya cesado
el movimiento de arrastre.
Capitulo 2 Pagina 2
CASSETTE (Datacorder)
PAUSE = Apretando esta tecla consigues una PAUSA en la operacion
de la ductora de cinta, sin alterar el modo de f uncionamiento en cjue
este. No debes usarla cuando el ordenador esta pasando informacion desde
o hasta el cassette, ya que provocarias un error. Todas las pausas
necesarias durante la grabacion o la LECTACION, son manejadas por
los programas propios del CPC464, por lo que estas pausas conseguidas
mecanicamente no son empleadas frecuentemente.
2.2 Proteccion ante escritura (figura 2.3)
LENGUETAS DE PROTECCION
ANTE ESCRITURA
Con el fin de impedir que se borre accidentalmente la informacion que
guardas en una cinta cassette, se dispone de unas lengiietas de proteccion.
Estas lengiietas se pueden quitar facilmente con unos pequenos alicates,
para que no se pueda apretar la tecla REC, con lo que esa cinta esta
protegida ante escritura.
Esta faceta de proteccion se aplica separadamente a CADA CARA de
la cinta, de manera que para proteger ambas caras de la cinta, debes
quitar las dos lengiietas. Si a continuacion inconscientemente, deseas
hacer que vuelva a ser posible grabar en esa cinta que esta protegida
frente a escritura, simplemente te basta cubrir el hueco resultante al
quitar la lengiieta con un trozo de cinta adhesiva.
2.3 Cargando las cintas
La figura 2.1 muestra la manera correcta de meter una cinta cassette
en la ductora de cinta, usando la que se suministra con el CPC464.
La cinta debe estar completamente rebobinada (pasandola del carrete
izquierdo totalmente hasta el carrete derecho, y si no lo esta, presiona
la tecla de rebobinado hasta que el motor se detenga en el extremo
delantero de la cinta). Si accidentalmente se ha salido la cinta por la
abertura frontal de su cajita, debes tensarla previamente y dejarla
bien bobinada antes de insertarla en el equipo cassette, o la cinta y la
informacion que contiene puede estropearse.
Capftulo 2 Pagina 3-
CASSETTE (Datacorder)
Observa por favor, que mientras que el mal uso de las cintas cassettes
en los sistemas de audio simplemente lleva a que se escuchen mal por
los dafios sufridos en la superficie magnetica de la cinta, ese mismo
tratamiento aplicado a unas cintas informaticas, no es posible si quieres
que funcionen con la suficiente fiabilidad.
Por ejemplo, cuando danas la cinta porque atrapas un trozo suelto con
la tapa del cassette, etc., y aunque compruebes que todavia puedes cargar
y guardar programas en ella, lo que debes hacer inmediatamente es volver
a guardar esa informacion en una cinta intacta y sin dafios, en cuanto
logres tener en la memoria del CPC464 un programa, y luego desechar
esa cinta danada antes de que te entren tentaciones de volver a usarla
y en el momento mas inoportuno te de problemas.
2A La cinta de Bienvenida
Con el CPC464 se suministra una cinta cassette con unos cuantos
programas de demostracion sobre las posibilidades sonoras y graficas
del ordenador y de los programas RESIDENTES en el mismo: el interprete
del BASIC AMSTRAD y el llamado Sistema Operativo de la Maquina (MOS).
Parte de la funcion del conjunto de programas que es incorporado en
fabrica dentro del ordenador y ya reside en su memoria permanentemente,
denominado sistema operativo, es la de gestionar precisamente todas
las operaciones con el cassette, incluyendo una serie de comandos que
permiten leer y escribir datos y programas en la cinta. Los comandos
mas frecuentes son el de CARGA en memoria (LOAD), cargar y
EJECUTAR el programa (RUN), y GUARDAR un programa en cinta
(SAVE).
Para hacer la operativa del ordenador lo mas simple posible, el CPC464
incluye ciertas funciones especiales que simplifican la manipulacion de
las teclas hasta que adquiere la suficiente practica. Si ya has puesto
en marcha el ordenador, y estas viendo el mensaje de "salutacion" con
el aviso:
Ready
que te indica que esta PREPARADO para que le des alguna orden por
teclado, puedes meter la cinta de Bienvenida tal y como te mostramos
en la figura 2.1, "arredrar" el contador del cassette pulsando el oequeno
boton situado a la derecha de la ventanita donde se muestra el nilmero
de vueltas, y luego pulsar la tecla de control, marcada CTRL, y mientras
la mantienes apretada, pulsar la pequena tecla ENTER en la esquina
inferior derecha del teclado exclusivamente numerico. Inmediatamente
el ordenador mostrara en pantalla el mensaje:
RUN"
Press PLAY then any key:
Capftulo 2 Pagina 4-
CASSETTE (Datacorder)
Que obviamente te indica que en cuanto aprietes PLAY y luego cualquier
tecla, empezara a ejecutar el programa grabado en la cinta.
Para tu informacion, te puedo hacer notar que este es otro de los ejemplos
en que con un "toque" simultaneo de dos teclas, conseguimos enviar hacia
el interior del ordenador un comando completo; como ya comentamos
brevemente al hablar del comando TECLA en el capitulo 1. Observa que
al tocar una tecla conjuntamente con otra, como SHIFT o CTRL,
cambiamos el significado de esa tecla. Es una manera de escribir
TAQUIgraficamente, con lo que una vez acostumbrados, se consigue
acelerar enormemente la operacion en el ordenador y el desarrollo de
los programas. Seguiremos comentandolo a lo largo del manual, pero el
efecto asf conseguido es el mismo que si hubieras tecleado el comando
RUN" y luego pulsado ENTER, y lo logras mas facilmente con el toque
simultaneo de dos teclas.
En la mayoria de las ocasiones, las dos teclas ENTER llevan a cabo la
misma funcion, pero hay circunstancias en que la funcion desempenada
por la mas pequena de esas dos teclas, puede ser alterada (redefinida)
para conseguir efectos distintos.
La tecla de la ductora de cinta marcada PLAY es la que te pide el
ordenador que pulses, y debes hacerlo hasta que quede trabada en su
posicion mas baja. La parte del mensaje en que te pide pulsar cualquier
tecla, es una frase comunmente usada por los programadores y que pueden
confundir al principiante. Se usa para simplificar las operaciones de manera
que el ordenador pueda proseguir con el programa en cuanto el operador
haya efectuado la operacion que se le pide.
Pero debe interpretarse siempre que se puede pulsar cualquier tecla
normal, es decir, distinta de las marcadas SHIFT, [CAPS LOCK], CTRL
y ESC, (y por supuesto, cualquiera de las teclas del panel de la ductora
de cinta) pero inevitablemente todos los fabricantes de ordenadores tienen
que hacer ciertas hipotesis con el fin de disminuir el espacio ocupado
en memoria y hacer mas simple la operacion. Por lo tanto, siempre que
aparezca la frase "Press any key" en esta Gui'a de Usuario, o en los
programas suministrados por AMSOFT y otros vendedores, debe dar por
supuesto que las excepciones mencionadas continuan aplicandose.
Observaras ademas que cualquiera que sea la tecla que pulses, no aparece
en pantalla el si'mbolo correspondiente, y que lo que se logra con la
pulsacion es simplemente que el motor de la ductora de cinta arranque
y que el mecanismo "lectador" de informacion comience a actuar. Si
la cinta no comienza a pasar, pulsa otra tecla (la costumbre es pulsar
la tecla ENTER, que para eso la hacemos mas grande) y comprueba que
no tienes presionada la tecla PAUSE de tu ductora de cinta. Tambien
si pulsas mas de una tecla, el ordenador no lo tendra en cuenta y
comenzara igualmente a trasvasar la informacion desde la cinta hasta
su memoria.
Capftulo 2 Pagina 5-
CASSETTE (Datacorder)
Observa tambien que en el comando no has resenado ningun nombre de
programa en particular. Y si no mencionas un nombre de programa en
el comando, justamente despues de las comillas, como en este caso:
run
el ordenador solo escrutara la cinta hasta que encuentre el primer programa
grabado en ella, que es el que comenzara a cargar e inmediatamente
a ejecutar, tal y como le has mandado. Cuando esta CARGANDO el
programa, te lo indica en pantalla mediante el mensaje:
Loading WELCOME 1 block 1
ya que asi' se llama -WELCOME 1- el primer programa de una serie de
bloques que el fabricante de esa cinta ha preparado. En el CPC464, cada
programa se GUARDA en cinta en la forma de bloques consecutivos de
informacion (con un maximo de 2Kbs, (que ya veremos que es) que son
lectados y traspasados a la memoria del ordenador. Cada bloque de
informacion esta identificado en la cinta de manera univoca, y el mensaje
de la pantalla te indica el bloque corriente en cada momento. Despues
de trasvasar un bloque de informacion, la ductora detiene la operacion
momentaneamente, y luego vuelve a comenzar y casi al mismo tiempo
se actualiza el mensaje que aparece en pantalla para indicarte el nuevo
numero del bloque corriente.
Si en cualquier momento el ordenador detecta informacion erronea, te
mostrara un mensaje de error (Apendice VIII) indicandote las caracteristicas
del error. Generalmente no es posible hacer ninguna otra cosa que no
sea rebobinar la cinta e intentar volver a cargar el programa.
Supongamos que el ordenador ha cargado la cinta en memoria y comienza
a ejecutar el programa. Vete leyendo las instrucciones que aparecen en
pantalla y el programa de Bienvenida que gobierna el ordenador hara
el resto.
2.5 Mas-seguro o mas-rapido
El CPC464 dispone de dos CADENCIAS para trasvasar datos desde y
hasta la ductora de cinta:
-una cadencia supersegura de 1000 baudios
-una cadencia superrapida de 2000 baudios
-y recordando que los baudios (es una medida de los tiempos de la
telegrafia para indicar el numero de senales transmitidas por segundo,
corresponderian en este caso por tanto, a 1000 bitios por segundo
y 2000 bitios por segundo respectivamente).
Capftulo 2 Pagina 6
CASSETTE (Datacorder)
Por lo tanto, a la cadencia de superrapidez se trasvasan datos desde y
hasta la cinta dos veces mas rapidamente que con la cadencia supersegura,
sacrificando los margenes para errores que algunas veces se precisan
para tener en cuenta la falta de homogeneidad en las cintas de bajo coste
y los errores suscitados por los diferentes alineamientos de los cabezales
de lectura y escritura en las diferentes ductoras de cinta.
Para programas que se almacenen y recuperen usando la misma maquina,
la cadencia de superrapidez ha demostrado que es suficientemente fiable
si empleas cintas de calidad razonable. Con esa cadencia tambien podras
cargar la mayorfa de las cintas comerciales con programas directamente
y sin errores -aunque AMSTRAD siempre aconseja que todos esos programas
sean grabados doblemente, con una y otra cadencia.
El ordenador automaticamente se prepara para leer a la cadencia con
que esta grabada una cinta. Pero cuando GUARDAS un programa, necesitas
decirle al ordenador si deseas usar la cadencia superrapida, o por omision
lo hara en la cadencia supersegura que es la prescrita como normal.
Si eliges la cadencia de 2000 baudios para grabar tus programas y datos,
comprueba que estas en modo directo (con el aviso Ready en pantalla)
y teclea:
SPEED WRITE 1
con lo que se preparara para trasvasar datos a esa velocidad; y para
regresar a la cadencia prescrita como normal, puedes simplemente
restaurar el ordenador (en cuyo caso perderas todo lo que tengas en
memoria) o simplemente teclear cuando este PREPARADO:
SPEED WRITE
2.6 Grabando programas y datos en el cassette
BASIC tiene varios comandos en relacion con la manera en que se graba
informacion en el cassette. Lo resumimos brevemente aqui' y presentamos
algunos ejemplos.
2.6.1 SAVE , '<nombre-fichero> ,,
El metodo mas directo de depositar informacion en el cassette es usar
el comando SAVE cuando el CPC464 muestra la palabra Ready despues
de ejecutar o listar un programa. Con el programa breve que presentaba
el repertorio de caracteres visibles comentado en el capitulo 1 como
objeto de nuestro comando de GUARDAR programas en cassette,
trabajaremos en los ejemplos.
Capftulo 2 Pagina 7-
CASSETTE (Datacorder)
I
El <nombre-fichero> puede ser cualquier combinacion de 16 caracteres
(incluyendo los espacios en bianco). Si intentas emplear un NOMBRE DE
FICHERQ con mas caracteres, no se tendran en cuenta el caracter 172
y los siguientes. Cuando tengas el programa en la memoria del ordenador,
teclea por ejemplo:
SAVE "CfiRACTERES"
a lo que el ordenador respondera con el mensaje:
Press REC and PLAY then any key:
Recuerda lo que hemos comentado sobre el termino "cualquier tecla",
y observa que la ductora de cinta se pone en marcha y el ordenador
GUARDARA el programa identificandolo con el nombre fichero resenado
en el comando: CARACTERES.
IMPORTANTE
Observa que el ordenador no puede detectar si has apretado o no las
teclas del cassette correctas, asf que si solo aprietas PLAY, la ductora
se pondra en marcha y el programa parecera que queda guardado pero
no es asi".
PRECAUCION: Si accidentalmente aprietas REC y PLAY, cuando lo que
quieres lectar un programa de la cinta y cargar en memoria, lo que
consigues es borrar el programa de la cinta, ya que estas grabando "nada".
Si no lo interrumpes pulsando la tecla ESC, la cinta continuara marchando
hasta el final y quedara completamente borrada ya que el ordenador no
habra encontrado ningun programa haciendo operaciones de grabacion!.
Si estas nervioso y quieres evitar la perdida de datos por esta causa,
habituate a quitar la lengiieta de proteccion ante escritura de tus cassettes
antes de que empieces a tener motivos para estar nervioso realmente.
Hay cuatro maneras en que puedes GUARDAR ficheros en el CPC464.
Has visto el metodo mas general, pero existen otros tres metodos
alternativos para propositos mas especializados.
2.6.2 SAVE "^ombrefichero" ,A
El procedimiento es igual que antes, excepto que se interpreta el sufijo
,A por el ordenador como que requieres guardar el programa o los datos
en la forma de un FICHERO TEXTUAL ASCII (literalmente con el codigo
ASCII para cada simbolo que aparezca en el fichero), en lugar de utilizar
la notacion "taquizada" que el ordenador usaria si no le dices lo contrario.
Este metodo de conservar informacion se aplica primordialmente a los
ficheros creados por los ELABORADORES DE TEXTOS y otros programas
de aplicacion que preparan ficheros para ser posteriormente tratados
con otros programas.
Capftulo 2 Pagina 8-
CASSETTE (Datacorder)
2.6.3 SAVE •knombrefichero" ,P
La clausula ,P en este comando le indica al ordenador que proteja la
informacion que deposita en la cinta (y lo hace "cifrando" la informacion
de manera que ni el servicio secreto podra descifrarlo) y que solo puede
ser trasvasada a la memotria del ordenador usando los comandos RUN
o CHAIN. Se hace para evitar que nadie pueda cargar lo del cassette
en la memoria y luego detener la ejecucion mediante la tecla ESC y
simplemente listar el programa. Si tu mismo crees que posteriormente
vas a editar o alterar el programa guardado de esa manera, mejor manten
una copia en lugar seguro y grabada en cinta sin este tipo de proteccion
para que puedas hacerlo.
2.6.4 SAVE "<rK)mbrefichero> n > B,<direccion inicial>, <longitud>
[,<direccion entrada>]
Esta opcion te permite depositar en cinta un bloque de memoria con
sus contenidos y en forma binaria, como una copia exacta de los valores
alojados en cada una de las celdillas de memoria. Es necesario comunicar
al ordenador la direccion inicial de la seccion de memoria que quieres
guardar, la longitud de la seccion en bicos, y la direccion de carga en
que comenzara la ejecucion del programa si esa seccion que guardas va
a ser inmediatamente ejecutada despues de ser recuperada de la cinta.
Esta posibilidad de grabar copias exactas de secciones de memoria permite
que guardes directamente en el cassette la informacion que aparece en
la pantalla, que es lo que solemos llamar VOLCADO o VERTIDO de la
memoria en la cinta. Una de las formas de aprovechar esta facultad es
para construir los "titulares" para programas que debido a su longitud
tardan bastante en ser cargados en memoria.
2.6.5 Ficheros sin nombre y el comando CATalogo
Si guardas un fichero en cinta sin darle un nombre que lo identifique,
usando:
SAVE""
el ordenador lo guardara en la cinta como un "fichero sin nombre". En
la cassette puedes guardar tantos ficheros como quepan en la cinta, usando
los mismo nombres o distintos, o no dandoles nombres; quedaran
secuencialmente uno detras de otro, que en eso se diferencian de los
discos en que es imprescindible asignar un nombre "univoco" a cada uno
de los ficheros que guardas.
Rapidamente le perderas la pista a tus programas si no les das nombres
adecuados y que te recuerden de que se trata. Y ademas te aconsejamos
que siempre anadas algun tipo de referenda a la fecha dentro del nombre
para que puedas saber cual es la version mas reciente de tus programas
y ficheros de datos.
Capftulo 2 Pagina 9
CASSETTE (Datacorder)
Puedes sacar el CATALOGO con el contenido de una cinta si le tecleas
el comando CAT, y luego llevas a cabo la operacion que el ordenador
te pide con el mensaje:
Press PLAY then any key:
El sistema ira enunciando los ficheros contenidos en la cinta, mostrando
todos los <nombres de fichero MAYUSCULAS, seguido del numero del
bloque corriente, y luego median te un solo caracter, la clase de fichero
de que se trata:
$ es un programa BASIC standard
% es un programa BASIC protegido
* es un fichero textual ASCII
& es un fichero en notacion binaria
Y al final de la linea, el aviso OK te indica que el fichero es perf ectamente
"lectable" y que hubiera sido cargado en memoria si le hubieses pedido
que lo hiciera. Al efectuar la funcion CAT no se altera en absoluto el
programa existente en la memoria del ordenador.
2.7 Read errors
Si en algun momento aparece en pantalla el mensaje Read error, es serial
inequivoca de que se ha producido un ERROR DE LECTADO o LECTURA,
durante la operacion de carga que el CPC464 estaba realizando; la ductora
de cinta continuara en marcha y el ordenador seguira lectando los bloques
que encuentre despues del error, pero no intentara cargarlos a no ser
que correspondan al primer bloque del programa que esta intentando
infructuosamente cargar.
Eso significa que despues de este error, puedes detener la cinta apretando
la tecla del cassette [STOP/EJECT], rebobinar hasta el principio de la
cinta y apretar de nuevo la tecla PLAY. El ordenador hara otro intento
de cargar el programa cuya carga fue fallida por el error, y con suerte
esta vez la carga sera lograda.
Los errores en las cintas son provocados por diversas causas, siendo la
mas comun un dano accidental en la superficie de grabacion y lectura
de la cinta magnetica por aranazos, dobleces, y otros defectos. Tambien
puede surgir de la practica aparentemente inocente de apagar el ordenador
mientras todavia esta apretada la tecla PLAY o las teclas REC y PLAY.
Y es debido a que con una tecla pulsada, la cinta esta frotando contra
el correspondiente cabezal de lectado o grabacion, y se puede generar
un impulso con la extracorriente de ruptura al descargarse el alimentador
y pasar a traves de esos cabezales y danar la cinta. Incluso, aunque la
cinta por si' misma esta estacionaria, este impulso de apagado (y tambien
el de encendido) puede indudablemente, deteriorar la informacion en esa
pequena parte de la cinta y hacerla ilegible.
Capitulo 2 Pagina 10-
CASSETTE (Datacorder)
Ademas, la cinta estacionaria esta sujeta a fricciones entre el pequeno
cabestrante y el rodillo de arrastre, lo que al prolongarse excesivamente
puede conducir a la creacion de arrugas en la superficie de la cinta.
Tambien se pueden producir errores en la operacion de lectura si la cinta
fue previamente grabada en otro CPC464 cuyo cabezal de grabacion
estuviera incorrectamente alineado.
Tambien se producen errores ocasionalmente por razones puramente de
azar. La cinta en cassette no fue disenada originalmente como medio
de almacenamiento de informacion "discreta" y como tal tiene varias
desventajas que solamente se evitan en los equipos de almacenamiento
en cinta profesionales mucho mas complejos y considerablemente mas
caros.
A pesar de todo lo que pueda parecer, las cassettes efectuan una labor
excelente al proveer un "medio" standard para el almacenamiento y
recuperacion de la informacion en los ordenadores, y lo hacen con un
bajo coste. Las limitaciones debido a los tamanos de las parti'culas
magneticas de la superficie de la cinta, conjuntamente con la velocidad
con que la cinta pasa por los cabezales de lectura y grabacion, deter minan
un li'mite concreto sobre la cadencia con que se pueden transferir datos
entre la ductora de cinta y el ordenador. Intentar sobrepasar esa cadencia
mas alia de la cota superior de tolerancia del sistema, provocara un
funcionamiento poco fiable, particularmente con los metodos de
duplicacion masiva de cintas que se usa para comercializar los programas
en soportes de bajo coste.
OBSERVA: Que las cassettes que contienen programas para otras clases
de ordenador, no pueden ser cargados en el CPC464. Pueden parecer
iguales, e incluso puede que hagan sonidos similares cuando se reproducen
mediante un sistema de audio, pero no podran ser cargados ni desde luego
ejecutados. Si encuentras alguno que aparentemente carga y ejecuta,
te rogamos encarecidamente que nos lo comuniques dandonos detalles
de la clase de ordenador y del programa en cuestion. Ya tomaremos
medidas.
2.8 Consideraciones sobre el Datacorder
Aunque el Datacorder -nombre comercial de esa ductora de cinta-
acepta gustosamente todos los cassettes de cualquier duracion hasta C90,
debieras usar unicamente el C12 (6 minutos por cara) y como mucho
el C30. Los programas grabados al final de las cintas largas son una
pesadez a no ser que estes dispuesto a esperar un rato hasta que se
encuentran (y que recuerdes el nombre de fichero que le diste), o que
seas lo suficientemente meticuloso como para emplear el contador de
cinta en un sistema INDEXADO, incluyendolo por ejemplo dentro del
nombre del fichero.
Capftulo 2 Pagina 1 1-
CASSETTE (Datacorder)
Si quieres escribir encima de un programa grabado en una cinta de larga
duracion, debes ser muy cuidadoso en localizar el punto de comienzo
y procurar no sobre-escribir cualquier otro programa que deseas conservar.
De forma general, dirfamos que uses cassettes separadas con tan pocos
programas como te sea posible. Las cassettes CI 2 son relativamente
baratas y si danaras la cinta por cualquier percance, es mucho menos
atractivo sacar copias de un cassette de larga duracion que solo tiene
algunas partes buenas.
Finalmente, recuerda por favor que los programas comerciales casi siempre
se suministran bajo condiciones estrictas frente a las copias, y con los
derechos reservados. No debes intentar copiar ni en ninguna manera
duplicar programas grabados en cassette que no esten conformes con
las condiciones de ventas de esos programas (algunos programas realmente
te animan a que por lo menos saques una copia de reserva, y eso es logico),
y sobre todo, evitar eso de que es "solo para un amigo". Las leyes sobre
los derechos reservados se estan revisando para conternplar todas las
formas de duplicacion de programas sin autorizacion, y aunque ha habido
poca vigilancia hasta la fecha, esta situacion cambiara sustancialmente
en los proximos anos, y puede que sea con efectos retroactivos. Y desde
luego, hay unos ciertos valores eticos y morales que estan siendo
vulnerados al duplicar los programas. Y eso tambien importa.
Capftulo 2 Pagina 12-
BASIC AMSTRAD: La esencia
3. Lo primordial de BASIC
Una breve introduction a la programacion usando el lenguaje BASIC
AMSTRAD.
Temas tratados en este capftulo
* Las reglas sintacticas y la description de la sintaxis
* Los comandos de exposition, los cauces de exposition
y la forma de exposition.
* Zonas en pantalla
3.1 Lo basico del BASIC
La relation fundamental del BASIC incorporado en el CPC464 con la
operation interna de los ordenadores, se presenta en el Apendice II. Si
anteriormente no has programado un ordenador, intentaremos ayudarte
en tu proceso de aprendizaje, pero puede que sea necesario hacer algunas
hipotesis que pudieran causar confusion al principiante. Si asi es, te
sugerimos que ojees algunos de los muchos libros y cursos disponibles,
que estan planteados para presentar los aspectos fundamentales de la
programacion al recien llegado.
Seras capaz de sacar provecho de este capitulo si sigues los simples
ejercicios presentados y que no exigen una comprension completa de lo
que pasa, aunque cuantas mas reglas aprendas, mas facil te sera todo
lo que viene.
BASIC es el lenguaje CONGENITO en tu ordenador CPC464. En fabrica
lo nemos incorporado y ya reside permanentemente en la memoria de
tu ordenador. En cuanto lo enciendes, sentiras su presencia porque te
saluda con la palabra:
Ready
que indica que esta "dispuesto" y "preparado" para obedecer tus ordenes.
El lenguaje BASIC es el lenguaje mas simple de aprender. Esta organizado
en torno a palabras claramente definidas y a una gramatica simple, y
opera de una manera completamente racional y logica, en cuanto
comprendas las reglas.
El BASIC AMSTRAD es capaz de obedecer los comandos que resenamos
en el capitulo 8. Cada comando se caracteriza y comienza por una o
mas palabras clave, que indican la operation que el ordenador hara al
obedecer ese comando.
ii Capftulo 3 Pagina 1—
BASIC AMSTRAD: La esencia
Los comandos incluyen una serie de parametros -que permiten "matizar"
la accion especificada por el comando y algunos de los cuales son
opcionales. En general, cada parametro puede venir designado por una
expresion en la que intervienen constantes, variables y funciones. Las
combinaciones de si'mbolos tomadas del repertorio admitido, sean letras,
cifras, signos, etc., cuando estan "ensartados" y deben ser tratados por
el ordenador LITERALmente (es decir, letra a letra) lo denominamos
datos litericos o literales. Cuando solamente intervienen "dfgitos", y lo
que es mas importante, ha de ser tratado como una cantidad, se denomina
dato numerico o numeral, y hay diversas clases dependiendo de la precision
en enteros, reales, etc. y dependiendo del sistema de numeracion empleado:
decimal (base 10), hexadecimal (base 16) y binario (base 2). La informacion
en las cintas de cassette se guarda en colecciones de datos relacionadas
entre si' denominadas ficheros. Y se depositan y recuperan de la cinta
SECUENCIALMENTE (lo que quiere decir, uno inmediatamente detras
de otro), en oposicion a los ficheros que emplean como soporte los
diskettes en que los ficheros se guardan con discernimiento, porque se
puede DISCERNIR el sitio donde estan guardados, y los cabezales de
lectura y grabacion pueden ser situados directamente en ese sitio, para
depositar o recuperar la informacion.
3.2 La estructura de un programa en BASIC
Los programas en BASIC son series de liheas de instrucciones. Una li'nea
puede incluir varias instrucciones, separadas por dos puntos, con la unica
limitacion que el numero maximo de caracteres que puede haber en la
li'nea es de 255. Una li'nea puede ocupar varios renglones, pero es el numero
que precede a todas las li'neas del programa el que delimita una li'nea
de la siguiente. En el modo directo, damos comandos utilizando el teclado,
que son en su mayori'a iguales a las instrucciones pero que no comienzan
con un numero de li'nea. En el modo programa, el ordenador examina
las li'neas de programa existentes en su memoria y las va cumplimentando
sucesivamente siguiendo un orden ascendente de numeros de linea a no
ser que una de ellas le indique otra cosa.
El BASIC AMSTRAD permite que el usuario anada y quite li'neas del
programa mientras el ordenador esta en el modo directo, preparado para
recibir comandos y que corrija las li'neas existentes. Antes de ejecutar
o de LISTAR un programa, el BASIC reorganizara internamente el orden
de las li'neas para conservar una secuencia ascendente de numeros de
li'nea, sin tener en cuenta el orden en que fueron tecleadas.
3.3 Imposicion por teclado de una li'nea de programa
BASIC acepta li'neas de programa siempre que tengan menos de 255
caracteres y esten terminadas pulsando ENTER.
Capftulo 3 Pagina 2
BASIC AMSTRAD: La esencia
Durante la imposicion de una linea, es posible EDITAR la corriente linea,
y usar las facilidades del cursor de COPIAR para insertar caracteres
en la linea tornados de cualquier otro sitio del texto que aparece en
pantalla. (Consulta capitulo 1, seccion 1.2.7).
Todas las palabras clave deben estar precedidas y seguidas de un signo
SEPARADOR, que puede ser bien un espacio en bianco, un signo
o signo de puntuacion (, : etc.) es debido a que esta admitido usar
variables cuyo nombre incluye una palabra clave (o palabra reservada),
y obviamente el ordenador no puede distinguir el comienzo y terminacion
de la palabra clave cuando esta "cercada" con otros caracteres que no
sean separadores.
Puedes teclear las palabras clave usando letras minusculas (sin pulsar
simultaneamente SHIFT) o letras mayusculas (pulsando simultaneamente
SHIFT).
El comando PRINT puede abreviarse usando simplemente el signo de
interrogacion (?) y cuando se usa de esta manera, no se necesita el
caracter delimitador. Los signos de operaciones matematicas (+ - * /
MOD) tambien efectuan al mismo tiempo la funcion de delimitar las
palabras clave, de manera que lo siguiente es valido, (aunque no te
animamos a que lo emplees, dado que adquiririas malos habitos tecleando
lineas de programas sin espacio, cuando son siempre convenientes y
algunas veces imprescindibles).
for n= 1 to 50: ?ns next
De igual manera, el apostrofe (') conseguido pulsando simultaneamente
SHIFT y la tecla marcada con 7, puede usarse en lugar de la palabra
reservada REM cuando das instrucciones de comentario o MEMOrandum.
Los espacios en bianco extras seran despreciados, y puedes usarlos para
CONFORMAR el listado del programa indicando bucles, subrutinas, etc.
3A Terminologfa
Para describir los comandos y palabras clave del BASIC, debe usarse
una terminologia formal aunque simple. Cada comando se describe en
la forma en que puede ser impuesto por el teclado, con cualquiera de
las variables o parametros opcionales senalados por "marcadores de
posicion" (varias clases de parentesis y corchetes) que hacen referenda
a elementos detallados en la descripcion de la instruccion.
Estos elementos o partidas estan representados por diversos nombres
y encerrados entre corchetes angulados (< >). Por ejemplo, en los diversos
sitios en que se exige un NUMERAL, es decir, directamente un numero
o bien una variable numerica, o bien una expresion que una vez evaluada
de como resultado un numero, lo representeremos simplemente mediante:
<numeral>.
Capftulo 3 Pagina 3-
BASIC AMSTRAD: La esencia
Mientras que cuando solo se acepte en la instruccion una constante
numerica o numero, escribiremos:
<numero>
Todo lo que no esta entre corchetes angulados, debera ser tecleado tal
y como se resena. Por ejemplo, el comando STOP, adopta la forma:
STOP
Cuando en una definicion de instruccion interviene una parte opcional,
esa parte opcional se encierra entre corchetes cuadrados, por ejemplo
si el numeral mencionado anteriormente fuera opcional, entonces
apareceria:
[<numeral>]
Si esa parte opcional puede repetirse varias veces en la instruccion,
(incluyendo la repeticion en que no aparece en absoluto), incluiremos
un asterisco despues del corchete cuadrado de cierre. Por ejemplo, una
constante numerica, que requiera como minimo la presencia de un digito,
apareceria
<dfgito>[<dfgito> ] *
Y por tanto, a la hora de escribir la instruccion completa, podriamos
sustituirla por:
3
6 34
6 344
6 745978, etc.
En muchas descripciones de instruccion se usa una lista cuyos elementos
estan separados por comas. Se usa una forma abreviada, que se explica
mejor mediante un ejemplo. Asf:
<lista de: <expresion> significa: < expresion >[,< expresion>] *
•clista de: [//] <numero> significa: [#] <numero> [,[//]< numero ] *
Y a la hora de concretar la instruccion, debe ser sustituido por algo como:
#3,4
6 3,4,4
6 # 7,4,5,9,7,8, etc.
Estas LISTAS pueden ser de un solo elemento. Si la lista contiene mas
de un elemento, cada uno de los elementos sucesivos debe estar precedido
por el signo coma, que marca el lfmite o delimita los elementos que el
ordenador debe tratar por separado.
Los numeros pueden expresarse usando diferentes NOTACIONES:
a. <humeros sin escala>
... son numeros en los que no aparece la parte del exponente que
se usa en la notacion cienti'fica.
Capftulo 3 Pagina k- —
BASIC AMSTRAD: La esencia
b. <numeros con escala> que es la notacion cienti'fica habitual en que
el numero esta "elevado a la potencia" o segun ESCALA, usando la
forma:
2E4 (2x10 elevado a la potencia de 4, 6 2*1 1 *), y la escala habitual
es 10.
...y obviamente la parte del exponente puede ser positiva o negativa.
c. <r»umeros con base>
...son numeros que expresan cantidades usando otro SISTEMA DE
NUMERACION, bien sea el binario o el hexadecimal (Apendice II):
Base 10 (la condicion prescrita para omisiones) 100
Base 16 (hexadecimal) _.. &-640R&H64
Base 2 (binario). _ &X1 100100
Y observa que mientras la H es opcional, la X es obligatoria.
3.5 La practica perfecciona: Presentando PRINT
Para demostrar la manera en que funciona esta terminologia, aquf hay
algunos ejemplos practicos.
Una de las instrucciones del BASIC que acepta la mayoria de las facetas
de la terminologia, es la correspondiente a la palabra reservada PRINT.
Un comando es una frase en BASIC que comienza directamente por una
palabra clave y que hara que el ordenador la ejecute inmediata y
directamente. Mientras que llamamos instruccion cuando esa frase esta
precedida por un numero de linea de programa, y el ordenador cuando
se le impone por teclado, simplemente la guarda en su memoria. Una
FUNCION que entrega un resultado funcion del argumento, exige la
presencia de un comando no solamente para "invocar la funcion", sino
para poder EXPONER el resultado. Por ejemplo:
PRINT SQR<64)
Con esto, le estas pidiendo al CPC464 que exponga el resultado de aplicar
la funcion raiz cuadrada (SQR) al numero 64 (el argumento).
Facil, pero esta implicito que existe algun convenio para entendernos.
O si no: ^POR DONDE expone el resultado conseguido?
Efectivamente, el ordenador dispone de varios CAUCES de comunicacion
con el mundo exterior. Es decir, un cauce Ueva los resultados a la pantalla
y ya veremos que puede ser subdidivida en varios "lienzos". Otro cauce
de comunicacion es con la impresora, otro cauce de comunicacion es
con la ductora de cinta, etc.
Capftulo 3 Pagina 5-
BASIC AMSTRAD: La esencia
L
La palabra reservada PRINT se utiliza para decirle al ordenador que^
exponga o "saque" algo (el resultado en este caso de aplicar la funcion
raiz cuadrada) hasta un determinado "cauce" de salida". Y cada cauce
queda identificado por un numero del al 9 y en las descripciones de
las instrucciones aparece como <nuneral de cauce>, que sera la constante
numerica, variable numerica o expresion cuyo valor es numerico, que
determinara el cauce concreto que usara al cumplimentar esa instruccion.
Los cauces con numeros del al 7, corresponden a "ventanas" o "lienzos"
de pantalla que debemos haber estipulado previamente mediante el comando
WINDOW.
El cauce 8, corresponde al PORTAL por donde sacamos en paralelo los
datos hacia la impresora, y que solamente usaremos si tenemos conectada
correctamente una impresora (compatible Centronics).
El cauce 9 es el que saca informacion hacia la ductora de cassette, donde
tambien previamente habremos definido un FICHERO y lo habremos abierto
adecuadamente. Por tanto, la descripcion del comando PRINT, (usando
solo lo visto hasta ahora, que vendra mas) seria:
PRINT [#<numeral del cauce>][<lista a exporter >]
Los corchetes cuadrados indican que no tiene que resenar en el comando^
el <numeral del cauce> siempre y cuando quieras que saque la informacion
hacia el organo periferico prescrito para omision de ese parametro, y
tenemos realmente que decir la lista de datos que queremos que exponga
(y si no ponemos nada, el ordenador sacaria una li'nea en bianco hacia
el cauce de salida que corresponda). El cauce prescrito, cuando no le
indicas lo contrario, es el cauce principal #0, que corresponde a la pantalla
y en la posicion senalada por el cursor en ese momento. Ensaya con el
comando ya clasico:
PRINT "HOLfi"
y recuerda que debes concluirlo pulsando ENTER (y hasta que lo hagas,
el ordenador solo "escucha" lo que le dices y "repica" los caracteres
tecleados en la pantalla, pero como el que oye Hover). Solo cuando pulsas
RETURN ve que has concluido y pasa a examinar lo que le has tecleado
y realizar lo que le pides si no detecta un error sintactico. Solemos decir
que simplemente lo que tecleas lo esta metiendo en el "buzon de entrada".
El ordenador cumplimenta lo mandado y responde con:
HOLfi
situado donde corresponde segun la posicion corriente del cursor. Y observa
ademas que las comillas no han sido enviadas hasta el cauce de salida.
Las comillas son simplemente para senalar al BASIC de una manera precisa
y exacta la SARTA de caracteres que tiene que exponer.
Capftulo 3 Pagina 6
BASIC AMSTRAD: La esencia
Teclea ahora:
PRINT MO, "HOLfi"
...y el resultado es el mismo. Pero si tecleas:
PRINT H4, "HOLfl"
observaras que HOLA aparece en la esquina superior izquierda de la
pantalla, y es debido a que el primer envi'o al cauce numero 4 -que por
ahora no has estipulado usando el comando WINDOW, y que por tanto
cubre todo el area de textos en la pantalla-, por lo que como todos los
textos enviados por primera vez hacia un cauce de exposicion por monitor
o pantalla, la posicion de comienzo es la esquina superior izquierda. El
mensaje de salutacion al poner en marcha el ordenador, usa el cauce
#0 que es el prescrito como normal, asf que en el caso anterior, ya lo
habias usado y por tanto el dato a exponer se mostraba a continuacion
de los datos ya expuestos.
Esta facultad del BASIC AMSTRAD confiere al ordenador CPC464 un
instrumento extremadamente potente, dado que te permite preparar en
pantalla diversas "vinetas" usando comandos y funciones muy simples,
con lo que contribuye a producir facilmente imagenes del tipo mosaico,
con una excelente presentacion.
Observa por segunda vez que la sarta de caracteres encerrada entre las
comillas, es aceptada literalmente por el ordenador, sin preocuparse en
absoluto por lo que hay dentro, por eso le llamamos lftero o decimos
que es un dato de indole literal. En esos literos tambien puedes incluir
palabras reservadas:
PRINT "4*4"
y el ordenador te respondera con:
4*4
Para indicar a BASIC que debe efectuar el producto 4*4, los numeros
y el SIGNO OPERADOR (el simbolo de multiplicacion *) debe ser accesible
al BASIC, y dirigir el resultado hacia un cauce de salida. Por ejemplo:
PRINT 4*4
...y BASIC nos presentara la respuesta:
16
Observa que el numero esta desplazado una posicion en relacion con el
margen izquierdo, dado que BASIC reserva este espacio para colocar
cuando lo precisa el signo monadico menos (-) que identificaria un numero
negative
El comando PRINT tiene muchas otras variantes, y puede usar la
posibilidad de CONFORMAR el resultado a exponer mediante la utilizacion
de una serie standard de "PLANTILLAS" u "HORMA".
— — — — — — — Capftulo 3 Pagina 7 — -
BASIC AMSTRAD: La esencia
La <lista a exponer> en un comando PRINT hace referencia a la serie
de datos que han de sacarse hacia el cauce especificado. Los elementos
de la lista pueden ser numerales o LITERALES, incluyendo las variables
litericas y las expresiones cuya evaluacion da como resultado un litero,
que es tanto el contenido de una variable literica como lo que esta
encerrado entre comillas.
Si en el comando de exposicion, se usa la clausula USING, podemos
exponer los numeros de acuerdo con la HORMA utilizada en dicha clausula,
de manera que pueden mostrarse alineados por^ la derecha, y con la parte
fraccionaria limitada a un cierto numero de digitos.
3.6 PRINT USING y las ZONAS de pantalla
Al ponerse en marcha, el BASIC considera la pantalla subdividida en
ZONAS que ocupan 13 posiciones a lo ancho. Cuando la instruccion PRINT
incluye en la lista de datos a exponer una coma (,), el siguiente dato
es TABULADO hasta situarse al principio de la siguiente zona. Si se dispone
de menos columnas al exponer en la ultima de las zonas de las especificadas
para esa zona, el BASIC comenzara a exponer el siguiente^ dato una^ linea
mas abajo. No corta el dato y pone guion para que continue en la linea
siguiente.
Si no se especifica la clausula USING, el BASIC expone los numeros
positivos precedidos por un espacio, y los negativos precedidos por el
signo menos. Todos los numeros son separados del dato siguiente por un
espacio en bianco. El punto decimal (que se usa para indicar la parte
fraccionaria de un numero) no se muestra si el numero no posee parte
fraccionaria.
El BASIC AMSTRAD no admite el uso de la tacla TAB como tabulador
de columnas, dado que hay una considerable falta de uniformidad en los
criterios sobre el significado de esta funcion, entre los diversos dialectos
de BASIC. Al pulsar la tecla TAB muestra la flecha de avance a la derecha
(-»■), que es lo mismo que si se pulsa CTRL y la letra I, pero que no tiene
ningun otro proposito en la BASIC AMSTRAD.
3.7 PRINT TAB (<numeral entero>) (<lista a exponer>)
El efecto de esta instruccion se comprueba mejor mediante un ejemplo.
Teclea este programa y observa el resultado:
5 MODE 2: INK 1,0: INK 0,9
10 FOR N=l TO 5
20 ZONE 40
30 PRINT TflB(N*4)"HI",N
40 NEXT
Capltulo 3 Pagina 8
BASIC AMSTRAD: La esencia
Este programa muestra tanto la separacion en ZONAS de exposicion
mediante la coma, y la funcion TAB (numeral entero). Vuelve a ejecutarlo
alterando antes la li'nea 10 para que sea:
10 FOR N=-5 to 5
La clausula TAB hace que la primera posicion del primer dato a exponer
mediante la instruccion PRINT, avance el numero de espacios en bianco
especificados por el numeral entero. La zona puede estipularse dentro
de la gama 1...255, como veremos en el capitulo 8.
La instruccion PRINT USING se emplea para conformar los resultados
de los calculos cuando es un numero real, y poder conseguir una tabulacion
ordenada de las partes fraccionarias de los numeros. Es un concepto
complicado que puede apreciarse mejor con los ejemplos practicos, dado
que la expresion general es:
PRINT [// -cnumeral del cauce>,] [< lista a exponer>][< clausula USANDO>]
[<separador>]
que no puede calificarse como "amistosa", especialmente dado que la
<clausula USANDO> se divide a su vez en:
USING <literal de horma >;[< lista a usar>]
en donde a su vez la <lista a usar> se vuelve a subdividir en:
< expresion >[< separador >< expresion > ] *
Mejor ensaya con lo siguiente:
PRINT 123.456, USING "### .*»« ,: ; 4567. 896
apareciendo en pantalla como resultado, el siguiente:
123.456
"/.4567. 90
que nos ilustra varios puntos. Primeramente, el primer elemento a exponer
resenado antes de la clausula USING no se ve afectado. En segundo lugar,
con la horma o plantilla que figura en la clausula USING se reserva el
numero de posiciones a ocupar en pantalla por el dato numeral que viene
detras, y que por supuesto puede ser una variable en lugar de un numero
como en este caso. Y si este dato tiene mas digitos a la izquierda del
punto decimal de los que has reservado mediante los signos "almohadilla"
(//), sigue apareciendo el resultado tal y como se muestra en el ejemplo,
pero precedido del simbolo de porcentaje para indicar que se ha rebasado
el espacio reservado. Luego, observa que la coma resenada despues de
123.456 ha provocado que el siguiente dato se exponga al comienzo de
la siguiente ZONA de exposicion. Si hubiera sido un punto y coma en
lugar de la coma, el segundo numero se expondria separado del primero
simplemente por un espacio en bianco. Los numeros se separan siempre
por un espacio en bianco cuando aparecen en la misma linea de pantalla
(por razones obvias!).
Capitulo 3 Pagina 9
BASIC AMSTRAD: La esencia
Observa ademas, que el segundo dato es REDONDEADO al aparecer en
pantalla, y no se han TRUNCADO los digitos que sobran por la derecha
de acuerdo con la "plantilla" de exposicion usada.
Ensaya ahora con esto:
PRINT 123.456, USING "###*«. #*+" ; 4567. 899
y veras que el signo mas (+) aparecera a continuacion de mostrar el dato
que esta usando la plantilla. Un signo menos (-) precedera a los numeros
negativos si se omite cualquier otra especificacion.
Esta variante PRINT USING es una posibilidad muy aprovechable para
producir tablas de resultados. Siempre te avisara si la PLANTILLA
especificada para exponer un dato es demasiado restrictiva (usando el
signo de porcentaje %).
■Capftulo 3 Pagina 10-
Mas BASIC
4. Variables, operadores y datos
Manipulando la informacion en un programa BASIC.
Temas tratados en este capftulo:
* Conociendose y familiarizandose
* Clases de variables: numericas y literales
* Operadores, expresiones logicas
* Tablas
* LISTAS
*.l Detectando la palabra reservada
Observa (si ya no lo has hecho antes) que los comandos y funciones que
son palabras reservadas en el BASIC AMSTRAD estan delimitados por
espacios en bianco, signos de puntuacion, signos de operaciones numericas,
etc. Los programas son mas faciles de leer y de DEPURAR, porque aunque
puedes teclear las palabras reservadas tanto en mayusculas como en
minusculas, cuando se lista el programa, todas ellas se convierten siempre
a MAYUSCULAS. Si no lo estan, es una serial de que hay un error en
la manera en que han sido tecleadas, y el programa no se ejecutara.
El BASIC AMSTRAD te permite que incrustes palabras clave dentro de
los nombres de las variables. Una variable en BASIC es el nombre de
un sitio de la memoria en el que alojas un dato especffico. El nombre
puede ser tan simple como una sola letra (y los nombres deben siempre
empezar con una letra, no pueden empezar con un numero), aunque es
mas facil de leer y comprender un programa largo si empleas nombres
para las variables que reflejen a que se refieren.
RESPUESTfl=4*4: print RESPUESTA
Los nombres de las variables en el BASIC AMSTRAD pueden constar
de 40 caracteres como maximo (y el primero debe ser una letra), y los
40 son significativos. Los nombres no pueden contener espacios en bianco,
o el BASIC solo leeria los caracteres anteriores al primer espacio en
bianco y luego senalaria el hecho con un error:
Syntax error
que nos indica que se ha impuesto una serie ilegal de caracteres como
nombre de una variable (Apendice VIII). Si quieres incluir separacion entre
las palabras de un nombre, usa un punto (.) en el sitio en que
correspondent el espacio en bianco. Son posibles todas las formas
habituales de variables multiples, teniendo presente la necesidad de
declararlas previamente mediante la instruccion DIMension.
Capftulo * Pagina 1.
Mas BASIC
*.2 Formas de abreviar
Es tedioso teclear PRINT cada vez, asi' que puedes usar en su lugar el
signo de interrogacion, y el BASIC comprendera que quieres decir PRINT
(en tanto y en cuanto no este colocado dentro de ninguna frase encerrada
entre comillas). Observa que la opcion ? no exige que este delimitado
usando un espacio en bianco como para las palabras reservadas. Si la
usas en una instruccion y no como un comando directo:
10?4*4
run
La respuesta tambien es la misma, pero ahora al listar este programa
de una linea es como si hubiera habido magia...
List
10 PRINT 4*4
Y aqui' tambien ha insertado un espacio en bianco antes de "expandir"
el signo de interrogacion. En instrucciones PRINT que usaran constantes
literales encerradas entre comillas, seria...
10?"H0Lft"
Tambien puedes ser perezoso y prescindir de las comillas de cierre, como
ya habras observado al usar CTRL y ENTER para cargar el cassette de
Bienvenida, ya que en pantalla aparecia el comando RUN". Eso mismo
funciona en las lineas de programa, pero no es un buen habito, dado que
si posteriormente vuelves a editar esa linea y le anades algo, probablemente
te olvides de cerrar las comillas, que al anadir algo, ya si' que son
necesarias.
4.3 Lineas multi-instrucciones y calculos combinados
Puedes efectuar uan serie de operaciones con una sola linea de programa
en BASIC, de hecho tantas como te permita la limitacion de 255 caracteres
por linea como maximo. Como siempre, las instrucciones deberan separarse
mediante dos puntos (:). Tambien es posible efectuar series de operaciones
matematicas:
?2*8/5+5-4*777E9/3
cuyo resultado sera:
-1.036E+12
Sin embargo, es esencial comprender el orden en que BASIC reconoce
los diversos OPERADORES matematicos (+, -, *, MOD, etc.) cometeras
equivocaciones. Las prioridades son:
+ Potenciacion: elevar un numero a una potencia dada.
Menos monadico o unario (el signo menos para declarar un numero
como negativo.
* Multiplicacion
Capitulo "t- Pagina 2
Mas BASIC
/ Division
\ Division entera: el resultado se corta dando solamente la parte entera
del numero y descartando la parte decimal.
+ Suma
Resta
Todo lo contenido dentro de los parentesis ( ) se calcula antes de cualquier
otra cosa, y si el contenido de los parentesis es precisamente un calculo
combinado, se maneja en el mismo orden de prioridades esbozado
anteriormente; incluyendo cualquier parentesis extra que hubiera dentro
de los anteriores. Como es obvio, debes siempre tener tantos parentesis
de cierre o a derecha, como parentesis de apertura o a izquierda tengas;
y el no cumpiirlo, suele ser la forma mas frecuente de error sintactico.
bA Progresando
Ya hemos hecho algun camino desde que presentamos la instruccion PRINT
en la seccion 3.5. Ya debes haber percibido lo suficiente de las reglas
fundamentales del BASIC AMSTRAD para permitirte adentrarte en el
reino propio del BASIC, genuinamente informatico, en lugar de las facetas
de pseudocalculadora. Las palabras clave en BASIC te las presentaremos
a medida que las necesites, pero puedes consultar el capi'tulo 8, donde
estan ordenadas alfabeticamente aunque las descripciones de uso no son
obvias porque falta el contexto en que aparecen.
Muchas palabras clave del BASIC dicen lo que quieren decir; el comando
de VAYA a 50, solo necesita para ser comprendido saber que VAYA en
ingles es GOTO, y con ello se deduce que le estamos mandando ir a la
linea numerada con 50 y ejecutar lo que alii' encuentre. END es una
palabra internacional, y por tanto le dice a BASIC que TERMINE el
programa que esta ejecutando y vuelva a presentamos el aviso de
DISPUESTO (que en ingles es Ready) para que podamos mandarle nuevas
cosas.
El modo directo (o inmediato) te permite teclear una serie de comandos
y no una sola, si separas los comandos con el signo dos puntos (:), sin
embargo, una vez que concluyas esa serie de comandos (pulsando la tecla
ENTER) seran cumplimentadas y la linea no la puedes volver a usar porque
no queda como instrucciones en memoria. Aunque en el CPC464, no
necesites teclearla de nuevo porque puedes usar la posibilidad de COPIAR
lo que hay en pantalla, mediante el cursor de copiar (y suponiendo que
todavia sigue ahf, y no lo has mandado precisamente que limpie pantalla).
Capftulo k Pagina 3-
Mas BASIC
k.5 Instrucciones condicionales y comparativas
BASIC utiliza ampliamente la capacidad propia del ordenador para hacer
tareas sencillas repetitivas, a gran velocidad y sin sentirse aburrido. Unos
cuantos comandos de programacion estan disponibles para ayudarte a
preparar estos procesos repetitivos (BUCLES, los llamamos), en que hay
comandos que inician, continuan y detectan cuando debe terminarse de
hacer las "rondas", porque se ha cumplido un conjunto predeterminado
de condiciones.
Normalmente, el ultimo de estas instrucciones que controlan los procesos
repetitivos concierne a una EXPRESION DE RELACION. En otras palabras,
que clase de relacion existe entre dos datos, y la clase viene determinada
por el operador de relacion usado en la expresion. Puedes comparar
constantes con constantes, o variables con variables, o variables con
constantes. Los operadores de relacion son:
< menor que
<= menor que o igual
= igual
> mayor que
>= mayor que o igual
o distinto (no igual)
Ahora te presentamos un breve programa que demuestra el uso de estos
operadores, y esta basado en un tema muy querido para nosotros. Si no
estas observando en este momento nuestro saludo:
Amst rad 64K Microcomputer (vl)
c 1984 Amst rad Consumer Electronics pic
and Locomotive Software Ltd
BASIC 1.0
Ready
...pues pulsa las teclas CTRL, SHIFT y ESC, manteniendo pulsadas las
tres simultaneamente, con lo que el ordenador restaurara las condiciones
iniciales y presentara nuestro saludo. Ahora prosigue y teclea lo siguiente
(las instrucciones para editar el programa se dan en la seccion 1.2.7):
10 INPUT "CUAL ES TU SALARIO" ;SALARI0
20 IF SALARIO < 10000 THEN GOTO 30 ELSE 40
30 PRINT "EXIGE UN AUMENTO" :END
40 PRINT "EXIGE UN COCHE GRANDE"
Ejecuta este pequeno programa, tecleando simplemente:
RUN
Capftulo * Pagina *
Mas BASIC
y el obligatorio ENTER, para que el ordenador se entere que has concluido.
Aparecera:
CUftL ES Til SftLfiRIO?
y observa como el ordenador ha anadido automaticamente el signo de
interrogacion al final, cuando espera que respondas para IMPONER el
dato que teclees. Contesta usando solo numeros, no letras, signos de
puntuacion o monetarios, etc., y concluye el dato usando la tecla ENTER.
Anade ahora la linea 5 simplemente tecleandola, cuando el aviso de
PREPARADO vuelva a aparecer:
5 CLS
Al ejecutarlo de nuevo, veras que se limpia la pantalla. Si tu primera
respuesta fue menos de 10000, contesta ahora mas de 10000 para que
aprecies la diferencia. Ahora amplia el programa original anadiendole
lo siguiente como linea 50:
50 IF SftLARIO > 30000 THEN PRINT
"sobornate al contable"
run
El comando END de la linea 30 termina el programa y hace que el
ordenador vuelva a presentar su divisa Ready. Dado que no hay comando
END en la linea 50, el programa prosigue comparando el valor de la
variable SALARIO con 30000, y SI Sf expone el mensaje correspondiente.
Sigue trabajando y anade otra linea de programa con numero 60:
60 IF SALfiRIO > 25000 THEN PRINT
".... y prestame uno de los grandes"
run
Observa que si contestas por ejemplo 26000 cuando ejecutes este programa
ampliado, veras que el BASIC pasa a traves de la linea 50 como si no
existiera (ya que la PREMISA de que el salario sea mayor de 30000 no
se cumple), y pasa a efectuar la comparacion y la operacion resenadas
en la linea 60.
En este momento, es hora de que construyas por tf mismo un programa
usando las instrucciones comentadas hasta ahora. Observa la manera en
que este programa ha ido "creciendo"; y la mayoria de los programas
evolucionan de esta manera, lo que nos da pie para presentarte lo que
quizas sea el concepto mas importante en programacion y que utiliza
la habilidad ideal del BASIC para organizar.
Capftulo 4 Pagina 5 — '
Mas BASIC
4.6 Evolucion: el origen de los programas
La manera en que el BASIC te permite construir programas a medida
que vas avanzando y comprobando, es su FACULTAD mas conveniente.
Los puristas y teoricos arguyen que esta comodidad conduce a tecnicas
de programacion "sin estructurar" y poco sistematizadas. Abordando los
programas en cuanto se te ocurren las ideas; mientras que los realistas
consideran que es la mejor manera de retener el interes de los estudiantes,
que asf puede ir comprobando el progreso que alcanza en cada etapa.
Tomemos otra vez nuestro ejemplo anterior y afiadamos ahora la linea
70 en que mandamos al ordenador que haga una pausa haciendo 900 veces
nada (con lo que tarda lo suficiente como para que puedas leer el texto
en imagen), y que despues de un "salto" VAYA a la linea 5.
5 CLS
10 INPUT "CUftL ES TU SALARIO"
20 IF SALARIO < 10000 THEN GOTO 30 ELSE 40
30 PRINT "EXIGE UN AUMENTO":END
40 PRINT "EXIGE UN COCHE GRANDE "
50 IF SALARIO > 30000 THEN PRINT
"sobomate al contable"
£0 IF SALARIO > 25000 THEN PRINT
".... y prestame uno de los grandes"
70 for n=l to 900: next n:goto 5
run
Observa que esta nueva linea, y las otras li'neas de programa que anadimos,
las tecleamos en minuscula para recordarte que el BASIC AMSTRAD
las acepta de las dos maneras y al mismo tiempo reconoce la diferencia
entre el nombre de una variable, una constante literal, y una palabra
clave. Como cuando ha concluido una ronda, le mandamos que vaya a
la linea 5, no es posible que este programa termine nunca; asf que pulsa
ESC por dos veces para escapar de el, y luego lista el programa para
comprobar que el ordenador ha convertido todas las palabras clave a
MAYUSCULAS, pero deja los nombres de las variables como n en
minusculas.
La linea 70 presenta lo que llamamos un BUCLE DE DEMORA, ya que
el ordenador se limita a hacer variar n de 1 a 900 antes de ejecutar la
tercera instruccion de esa linea: GOTO 5. Asf el programa "recicla" sin
acabar nunca. Somos reiterativos, como el programa. Pero ahora te
recordamos que pulsando ESC una sola vez, detienes la ejecucion del
programa, pero pulsandola de nuevo es cuando se INTERRUMPE
definitivamente y vuelves al modo de comandos, sin perder en absoluto
el programa que tienes en memoria.
Capftulo 4 Pagina 6
Mas BASIC
Lo mas probable, a no ser que ESCAPES precisamente mientras el ordenador
esta en el bucle de demora de la linea 70, el programa se interrumpira
inmediatamente, dado que lo habras pillado ejecutando la instruccion
10 en que esta esperando que le teclees un dato. En todo caso, siempre
te mostrara el numero de linea vigente en el momento en que se vio
interrumpido, y en este caso, lo probable es que el mensaje sea
Break in 10
Pero si lo pillaras haciendo el bucle de demora, el mensaje despues de
la segunda pulsacion de la tecla ESC, es:
Break in 70
Si escapas durante ese bucle de demora de la linea 70, habras SUSPENDIDO
la operacion que puede ser REANUDADA pulsando simplemente 'tualquier
tecla". Pero si has llegado a la interrupcion del programa, tambien puedes
hacer que SIGA a partir del punto en que estaba, si tecleas:
CONT
Y el programa continuara a partir de la linea en que se le interrumpio.
Hagas lo que hagas con la tecla ESC no perderas el programa almacenado
en memoria, a no ser que especfficamente mandes la ordenador que
"desnude" su memoria usando el comando NEW, (vas a empezar uno NUEVO)
o le des un comando de restauracion a las condiciones iniciales manteniendo
pulsadas simultaneamente las teclas CTRL, SHIFT y ESC.
Con el CPC464 no hay necesidad de poner una "red de seguridad'] para
aquellos que inadvertidamente RESTAURAN la maquina. La accion de
quitar el programa existente en memoria debe hacerse deliberadamente.
GUARDA todo en el cassette en cuanto tengas duda de si lo vas a querer
usar posteriormente o no.
4.7 Mas sobre variables numericas y literales
La esencia de la programacion es el concepto de variable. Si el ordenador
tratara exclusivamente con informaciones fijas, seria simplemente una
ayuda electronica al tecleado. Recuerda que si cualquier parte de una
expresion matematica puede ser una variable, el resultado es
ineludiblemente un dato asignado a una variable.
Las variables tienen tres atributos (cosas que se le pueden atribuir). Un
nombre, una clase y una "organizacion". Los nombres ya los hemos
comentado antes (4.1), las clases de variables son opcionales, asi' que
podemos definir una variable de acuerdo con las reglas de la seccion
3.4 en la forma siguiente:
<nombre>[< marca de clase>]
Capftulo 4 Pagina 7.
Mas BASIC
Las marcas de clase son:
% para variables numericas enteras, en que todo lo que pueda aparecer
a la derecha del punto decimal (de la coma que se usa en muchos
pafses) se desprecia. Las variables enteras ocupan menos espacio
en memoria, por lo que en aquellos programas que no exijan manejar
numeros con parte fraccionaria se ejecutaran mas rapidamente si
las variables se DEFinen como enteros. El comando DEFINT estipula
que determinados nombres de variables corresponden a variables
enteras. La gama de valores que puede tener una variable entera
es de -32768 a +32767.
! para numeros reales, con su parte entera y con su parte fraccionaria
separadas por el punto decimal. Las variables numericas estan
prescritas para ser reales desde el momento en que pones en marcha
el ordenador, asf que si omites especificar lo contrario, se consideran
reales lleven detras o no el signo de admiracion. La gama de valores-
que puede tener una variable numerica real es de 2.9E-39 a 1.7E+38.
$ indica una variable literal, cuyo valor es por tanto un litero, o
constante literal. Y un litero es simplemente una "sarta" de caracteres
cualesquiera. Lo importante es que el ordenador los trata
LITERALMENTE (tal y como los escribes, al pie de la letra, etc.)
y los reconoce porque estan encerrados entre comillas. Por ejemplo:
NOMBRE*="ALVARO GARCIA"
Usando esto en nuestro ejemplo evolutivo, anade la lfnea 6 y corrige
la lfnea 60:
6 INPUT "Como te 1 lamas" ;NOMBRE*
60 IF SALARIO > 25000 THEN PRINT
".... y prestame urto de los grandes" ;N0MBRE*
run
Observa que hemos incluido un espacio en bianco al final del mensaje
LITERAL a exponer en la lfnea 60 cuando se cumple la condicion previa;
y lo hacemos para evitar que se apelotone con el valor de la variable
nombre$, y si no ensaya no poniendolo y asf nos creeras. El signo ; al
final de una instruccion PRINT o de una INPUT, suprime el envfo
automatico por parte del ordenador del caracter de retorno de carro
al final de cada una de esas instrucciones. Con el punto y coma se queda
el cursor donde esta, y no pasa a la lfnea siguiente.
Tambien podemos practicar con variables enteras si anadimos la lfnea
61. Simplemente tecleala, y luego comprueba que el ordenador sigue
teniendo organizado su programa. Listalo y veras:
Capftulo ^ Pagina 8
Mas BASIC
5 CLS
6 INPUT "C6mo te 1 lamas" ;NOMB RE*
10 INPUT "CUAL ES TU SALARIO" ;SALARIO
20 IF SALARIO < 10000 THEN GOTO 30 ELSE 40
30 PRINT "EXIGE UN AUMENTO" :END
40 PRINT "EXIGE UN COCHE GRANDE"
50 IF SALARIO > 30000 THEN PRINT
"sobornate al contable"
60 IF SALARIO > 25000 THEN PRINT
".... y prestame umo de los grandes" ;NOMBRE*
61 TARIFA. DIARIA=SALARI0/365
PRINT "dispones de pts" ;TARIFA. DIARIA; " cada dla"
70 FOR n=l TO 5000: NEXT n:GOTO 5
run
Observa que hemos aprovechado para incrementar el numero de rondas
en el bucle de demora a 5000, ya que ahora exponemos mas texto en
pantalla. El resultado del salario por dia, no aparece muy presentable
y podriamos mejor REDONDEARLO para que fuera un numero entero.
Anade la linea 62...
62 REDONDEO*=TARIFA. DIARIA: PRINT
"o bien pts" ;RED0NDE0%; "si no re importan
los centiiYios"
run
Observa que siempre debes resenar la marca de clase %, para referirte
a esa variable entera, ya que puedes tener una variable real con el mismo
nombre y sin que se confundan por ser de clase diferente. Observa tambien
como el ordenador "recorta" las lineas que son demasiado largas como
para caber en un solo renglon y continua en el renglon siguiente (y lo
hace en los tres modos de imagen). Usa el modo 2 (80 columnas) para
escribir programas largos o con lfneas largas, dado que es mucho mas
facil leer programas sin tener que volver atras cuando se llega al final
de una linea.
Para pasar al modo 2, ya sabes que simplemente tecleas:
MODE 2
Y para producir texto en negro sobre fondo bianco, lo que es bastante
mas legible en el monitor CTM6^0, teclea directamente los siguientes
tres comandos:
INK 1,0
INK 0, 13
BORDER 13
Y ahora al listar veras el efecto.
Capftulo * Pagina 9.
Mas BASIC
4.8 Conformando la imagen
Parte de la evolucion en tu programa es el proceso de "pasarlo a limpio"
de vez en cuando. La primera cosa que podemos hacer para que quede
"bien arregladito" es RENUMERAR todas las lineas con multiplos de 10,
usando el comando RENUM. Basta que cuando veas el aviso de
PREPARADO (Ready), teclees:
RENUM
Y al listarlo de nuevo veras:
10 CLS
20 INPUT "Cbmo te 1 lamas" ;N0MBRE*
30 INPUT "CUAL ES TU SALARIO" ;SALARI0
40 IF SALARIO < 10000 THEN SOTO 50 ELSE 60
50 PRINT "EXIBE UN AUMENTO":END
60 PRINT "EXIGE UN COCHE BRANDE"
70 IF SALARIO > 30000 THEN PRINT
"sobornate al contable"
80 IF SALARIO > 25000 THEN PRINT
".... y prestame uno de los grandes"
90 TARIFA. DIARIA=SALARI0/365: PRINT
"dispones de pts" ; TARIFA. DIARIA; " cada dla"
100 REDONDEO%=TARIFA. DIARIA: PRINT
"o bien pts" ; REDONDEO*; " si no te importan
los centimos"
110 FOR n=l to 5000s NEXT n:GOTO 10
Y observa que no solo nan quedado REDONDOS los numeros de linea,
sino que tambien se han cambiado adecuadamente los numeros de linea
que se citan dentro de las instrucciones (v.g. GOTO 50). Claro que no
tendria mucha utilidad si el BASIC no mantuviera registrados todos los
numeros de linea mencionados en un programa y los actualizara todos
simultaneamente (cosa que en otros ordenadores...)
Vamos ahora a "maquillar" la imagen que el programa presenta en pantalla,
y antes de ello vamos primeramente a hacer PASIVO el bucle de demora
de la linea 110; para lo cual basta que convirtamos ese comando ACTIVO
en un mero comentario o MEMOrandum, usando precisamente al principio
el comando REM:
110 REM: FOR n =l to 5000: NEXT n=S0T0 10
Insertando el comando REM: al principio de esa linea, hacemos que el
resto sea meramente algo que el ordenador nos "remorara" cada vez que
listemos, porque continua guardando esa linea de programa en memoria,
pero no interviene en absoluto en la ejecucion. En este caso, conseguimos
asf que no haya ninguna demora ni se vaya de un salto a la linea 10,
sino que termine la ejecucion del programa y quede en pantalla lo que
el programa haya expuesto. Ahora teclea la linea:
15 mode 1
Capitulo 4 Pagina 10 ■
Mas BASIC
Con ello, fijamos el modo de imagen sin tener en cuenta el modo en
que esta cuando le pedimos que ejecute el programa: la li'nea 15 fijara
el modo 1 en cuanto empiece a ejecutar. Como el comando MODE
automaticamente al fijar el MODO, tambien LIMPIA la pantalla, resulta
que la li'nea 10 que teniamos es ahora redundante, pero de todas formas
la podemos dejar.
Ahora, EJECUTA el programa y vete respondiendo con los datos necesarios:
Como te llamas? fllvaro
CUAL ES TU SOLAR 10? 4000
EXI6E UN COCHE GRANDE
y sobomate al contable
dispones de pts 109.589041 cada dia
o bien pts 110
si no te import an los centimos
Ready
No es ni presentable ni elegante, especialmente al resultar cortadas
algunas frases. Bueno, pues anade...
25 PRINT: PRINT
85 PRINT
y preparate a corregir la li'nea 10, pasando al modo de edicion mediante
EDIT 100, y haz que sea:
100 REDONDEOX=TARIFA.DIARIA:PRINT
"o bien pts";RED0NDE0*;" si no te": PRINT
"importan los centimos"
Ejecutalo de nuevo y comprobaras que todo esta mas "adecentado". Anade
tambien la li'nea 120 para que el mensaje de PREP AR ADO (Ready)
aparezca bastante mas abajo:
120 ?:?:?:?:?
Y luego ejecuta otra vez el programa para comprobarlo. O mejor, suprime
ese mensaje al mismo tiempo que aprovechas para hacer que comience
a dar rondas y rondas y rondas:
120 GOTO 120
Una vez que hayas ejecutado esta version, ya saber que la unica manera
es E5CAPAR, usando ESC. Recuerda que el signo ? es un medio rapido
de dar el comando PRINT. Ahora lista para comprobar el resultado que
tenemos:
Capftulo 4 Pagina 11
Mas BASIC
10 CLS
15 MODE 1
20 INPUT "Como te llamas" ;N0MBRE*
25 PRINT: PRINT
30 INPUT "CUAL ES TU SALARIO" ;SALARI0
40 IF SALARIO < 10000 THEN SOTO 50 ELSE 60
50 PRINT "EXIBE UN AUMENTO": END
60 PRINT "EXISE UN COCHE GRANDE"
70 IF SALARIO > 30000 THEN PRINT
"so bo mate al contable"
80 IF SALARIO > 25000 THEN PRINT
".... y prestame uno de los grandes" ;NOMBRE*
85 PRINT
90 TARIFA.DIARIA=SALARI0/365: PRINT
"dispones de pts" ;TARIFA. DIARIA; " cada dia"
100 REDONDEOS=TARIFA.DIARIA: PRINT
"o bien pts";REDONDEO%;" si no te": PRINT
"importan los centimos"
110 REM:FOR n=l to 5000: NEXT n:GOTO 10
120 GOTO 120
4.9 Colocando el cursor
Hasta ahora, la mayorfa de los comandos BASIC los hemos escrito usando
la sintaxis del BASIC primitivo que puede ser comprendida por la mayoria
de las maquinas que poseen alguan clase de "interpretador" de BASIC.
El comando LOCATE es una de las potentes facultades del BASIC
AMSTRAD (y esta tambien la tienen algunos otros) que te permite
UBICAR el cursor de texto en cualquier posicion de la pantalla:
LOCATE 10,4
coloca el cursor de textos en la decima columna de la cuarta linea,
contando desde la parte superior de la pantalla. Si intentas darlo como
un comando directo, el cursor si' se ubicara en las coordenadas mencionadas,
pero el aviso Ready hara que comience una nueva linea, por lo que al
fin y al cabo, el cursor terminara como siempre en la primera columna
de la linea siguiente. Asf que mejor anadelo como linea del programa
16:
16 LOCATE 10,4
run
y veras como se baja la primera solicitud de datos y como se "sangra"
o "indenta" (se mete para adentro) de acuerdo con lo que le has mandado.
La siguiente linea continua como antes (alineada a la izquierda, es como
llamamos) dado que la linea 25 lo que hace es meter un par de renglones
en bianco. Pulsa ESC por dos veces para terminar y luego anade la linea
26:
26 LOCATE 10,4
Capftulo 4 Pagina 12
Mas BASIC
Al ejecutar el programa, observaras que la segunda solicitud de dato
el mensaje se escribe encima ("re-escribe") del primero. Puedes ahora
continuar colocando el texto exactamente donde quieres que aparezca
en la pantalla, y.para ello te sera de mucha utilidad usar las RETICULAS
DE PANTALLA que con coordenadas horizontales y verticales te
presentamos en el Apendice VI.
Si lo que quieres es que todos los mensajes y preguntas aparezcan en
la misma li'nea, una de las cosas que puedes hacer es preceder cada
instruccion de ubicacion del cursor con una instruccion de LIMPIE
PANTALLA, para evitar confusion con los restos que pueda haber de
la ultima exposicion.
Observa que las coordenadas empleadas en el comando LOCATE pueden
venir dadas como valores de variables numericas enteras, y generar esos
valores dentro del programa. Puedes practicar por tu cuenta, pero
volveremos sobre el tema.
Ya hemos gastado lo suficiente por ahora el programa de salario, asi'
que el siguiente ejemplo se basara en un tema diferente. Si quieres
conservar lo que has construido hasta ahora, haz que el ordenador
GUARDE el programa en cassette con los comandos que ya conoces del
capitulo 2. Puede incluso que te haya empezado a gustar el programa
a estas alturas, y que desees de vez en cuando consultarlo o ampliarlo
con los comandos que te iremos presentando.
*.10 SI...PUES
Su uso es bastante inmediato y patente. IF <expresion logica> THEN
<serie de comandos>. Y con "expresion logica" hacemos referencia a una
condicion o PREMISA cuyo resultado es de la clase logica: cierto o falso.
Con la instruccion IF indicamos al ordenador que evalue una expresion
logica para comprobar si es cierta, y si lo THEN ejecute la serie de
comandos. Esta operacion puede incorporarse en un programa para hacer
bucles que pueden ser simplemente REPETITIVOS o RECURSIVOS (que
ya comentaremos). Restaura el ordenador pulsando CTRL, SHIFT y ESC
y teclea:
1 MODE 1
10 AMSTRAD=0
20 PRINT "AMSTRAD CPC464 colour personal
computer"
30 AMSTRAD ■ AMSTRAD +1
40 IF AMSTRAD <10 GOTO 20
Capitulo * Pagina 13-
Mas BASIC
Ejecutalo y veras como se repite la instruccion de exposicion en pantalla
de la linea 20 hasta que se "cumple" la condicion o premisa de la linea
40. Por lo tanto con la linea 40 le obligamos a dar un "salto hacia atras"
a la linea 20. Observa tambien el significado de la variable llamada
AMSTRAD que va cambiando de valor cada vez que el ordenador efectua
una ronda de ese bucle, por lo que la podemos asimilar a un "contador
de vueltas".
Si quieres ver mas exactamente lo que esta sucediendo con el valor de
AMSTRAD durante este programa, puedes anadir la siguiente linea de
programa:
35 LOCATE 1,20: PRINT AMSTRAD : LOCATE 1 7 AMSTRAD
run
Y si ha ido demasiado deprisa, lo puedes hacer mas lento con un bucle
de demora:
36 for n=l to 500:next
Y ahora anadir un toque de color, (si tienes la opcion CTM640) incluyendo:
34 BORDER AMSTRAD
Esta linea va cambiando el color del BORDE en justa correspondencia
con los cambios de valor de la variable AMSTRAD. Lista otra vez el
programa:
1 MODE 1
10 AMSTRAD=0
20 PRINT "AMSTRAD CPC464 colour personal
computer"
30 AMSTRAD - AMSTRAD +1
34 BORDER AMSTRAD
35 LOCATE 1,20:PRINT AMSTRAD: LOCATE 1, AMSTRAD
36 FOR n=l TO 500: NEXT
40 IF AMSTRAD <10 GOTO 20
run
Y como no tenemos duda de que todos quereis ver todos los colores
disponibles en el CPC464, cambia la linea 40, para que sea:
40 IF AMSTRAD <26 GOTO 20
Ejecuta el programa y veras todos los colores disponibles, comenzando
con el mas oscuro y terminando con el bianco brillante. Puedes hacer
mas aclaratorio el mensaje que expones en la linea 35, si la editas
(corriges) para que sea:
Capftulo k Pagina 14-
Mas BASIC
35 LOCATE 1,20: PRINT "Borde" ;AMSTRflD:
LOCATE 1,AMSTRAD
run
Y ya que estamos tratando de los diferentes BORDES (y puede que te
guste mas la palabra MARCO), cuando el programa haya concluido y
el ordenador este PREPARADO para aceptar tus comandos, teclea:
BORDER 14,6
Y veras como el borde o marco "parpadea" entre los colores 14 y 6.
Tendras que esperar hasta el siguiente capitulo para que te demos mas
explicaciones sobre la manera en que funcionan los graficos y los colores.
Pero para redondear esta seccion, teclea el comando:
ink 1, 18, 16
y para finalizar, el comando:
speed ink 1,5
Veras que la CADENCIA (velocidad) con que el CPC464 cambia la TINTA
que usa, es como para ir a buscarse una aspirina y restaurar las condiciones
iniciales del ordenador. Recuerda hacer que GUARDE el programa en
la cinta, antes de que se RESTAURE a si' mismo, si quieres impresionar
a tus amigos.
4.11 Tablas
Algunos programas requieren un monton de variables para poder "alojar"
los datos que el programa procesa. Y se puede hacer, pero a menudo
es dificil seguirles la pista a todas esas variables que estan usando para
almacenar informacion. Afortunadamente, BASIC ha previsto esta situacion
y la ha resuelto usando lo que denominamos TABLAS. Tambien lo solemos
llamar ringlas, porque es una palabra mas cercana a la palabra inglesa
ARRAYS, que responde al concepto de un conjunto de cosas dispuestas
segun una REGLA determinada.
^Pero que es una tabla? Te lo puedes preguntar y llegar a la conclusion
de que en esencia, es un grupo de variables homogeneas con un determinado
arreglo entre ellas, que nos permite seleccionar cada una de ellas mediante
un nombre comun y uno o varios numeros ordinales especificos.
La mejor manera de terminar de comprenderlo es tomar un ejemplo.
Considera un programa que Simula un juego de cartas, y que por tanto
tenemos que tratar con cartas seleccionadas al azar.
■Capitulo 4 Pagina 15-
Mas BASIC
Obviamente no podemos sacar la misma carta dos veces, y por lo tanto
debemos mantener un REGISTRO de lo que ha pasado con cada carta
individual. Una manera simple de hacerlo seria asignar a cada carta una
variable con nombre distinto, y luego dar como valor de la variable uno
entre dos valores; por ejemplo, un 1 para indicar que esa carta ya ha
salido, y un para indicar que todavia esta en el monton.
Evidentemente, eso nos llevaria a usar 52 variables aisladas y de nombre
diferente (a no ser que estes jugando con cartas trucadas) y ademas,
tendrfas que recordar cual es el nombre de la variable que has asociado
a cada carta. Es un caso ideal para ver como entran en accion las
TABLAS o ringlas (lo que prefieras decir).
Primeramente, necesitamos dar a este conjunto de variables un nombre
comun, y vamos a darle por ejemplo el de CARTA. Ahora, para poder
seleccionar una carta especffica -un elemento de esa tabla- podemos
simplemente darle un numero. Asi', podriamos usar los primeros 13 numeros
para definir el palo de OROS, los -siguientes 13 para el de COP AS, y
asi' sucesivamente. Con ello nos quedaria que CARTA(6) seria el 6 de
oros, mientras que CARTA(ll) seria la sota y CARTA(13) seria el rey,
y CARTA(l^) el as de copas, y asf sucesivamente. Bastante sencillo,
parece.
Desafortunadamente, no podemos empezar planteandonoslo asi' y llevar
a cabo el programa directamente, sino que tenemos que ser justos con
el ordenador y avisarle para que OCUPE un espacio en memoria reservado
para este grupo de variables. El comando DIM se usa para que sepa la
dimension del espacio que queremos que ocupe. Es decir, este comando
DIM fija las dimensiones de la tabla y en nuestro ejemplo, con la baraja
que hemos dicho, necesitamos ocupar espacio para alojar las 52 variables
que forman parte de la tabla. Por tanto, tendri'amos que teclear el comando:
DIM CARTA <52)
Y a pesar que le decimos al ordenador que "ocupe" espacio en memoria
para 52 variables, es una de las situaciones en que no nos hace exactamente
lo que le hemos dicho; ya que realmente reserva espacio para 53 elementos.
Pero ya veras que lo hace por nuestra conveniencia. (El espacio de mas
que ocupa es para la CARTA que corresponde al numero 0).
Ahora ya podemos empezar a escribir la estructura de un programa, o
mejor un PARRAFO del programa que sea el que extrae una carta del
monton:
10 DIM CARTA (52)
20 FOR X - 1 TO 52
30 LET CARTA (X)=0
40 NEXT X
■Capftulo k Pagina 16-
•
•
•
•
#
Mas BASIC
1000 AZAR - RND(52)+1
1010 IF CARTA (AZAR) ■ 1 THEN GOTO 1000
1020 CARTA (AZAR) = 1
1030 RETURN
Observa que en el parrafo inicial, en la primera li'nea, ponemos la
instruccion DIM. Y es debido a que siempre necesitamos comunicar al
ordenador las dimensiones de la tabla que vamos a usar; y ademas, hay
que tener cuidado si posteriormente queremos cambiarle las dimensiones,
es preciso que antes le mandemos que LIBRE el espacio ocupado, mediante
el comando ERASE, como ya veremos mas adelante.
En las li'neas 20 a 40 hacemos que todos los valores de la tabla sean 0.
Luego en el PARRAFO que comienza en la li'nea 1000, hacemos que elija
una carta al AZAR (que eso es lo que hace la funcion RND(52), y que
despues de elegirla, compruebe que no habi'a sido sacada anteriormente.
Y si lo ha sido, el valor ya seria 1, por lo que le mandamos que VAYA
a sacar otracarta al azar, y asi' continuara hasta que encuentre una que
todavia permanezca en el monton. Cuando ya la encuentra, hacemos que
cambie el valor correspondiente del elemento de la tabla para que nos
indique que ahora ya ha sido sacada, y luego le mandamos que VUELVA,
y eso lo hace el comando RETURN, al punto donde le corresponda.
Es bastante natural que el manejo de tablas no este restringido a aquellas
que solo tienen una dimension, (en cuyo caso tambien se les suele llamar
RISTRAS), sino que pueda ampliarse al numero de dimensiones que
deseemos. Y se logra simplemente anadiendo mas numeros de "seleccion"
al dar el nombre de la variable. Por ejemplo, una tabla de 1000 elementos,
arreglados en 10 grupos de 100, y en que cada subgrupo de 100 esta
igualmente "arreglado" en 10 grupos de 10, se le comunicar i'a al ordenador
mediante el comando:
DIM RINGLAdO, 10, 10)
Esta tecnica es muy util para dividir grupos enormes en subconjuntos
o subgrupos mas pequenos y por tanto, mas manejables. En el ejemplo
de la baraja, nos seria todavia mas facil tener en cuenta los cuatro palos,
con 13 cartas cada uno, que componen la baraja y haber definido la TABLA
en la forma:
DIM CARTA (4, 13)
Y claro, ahora si como primer SUBINDICE (que asi' llamamos a esos
numeros) tiene el valor 1, seri'an oros, si tiene el valor 2 seri'an copas,
si tiene el valor 3 seri'an espadas, y si tiene el valor 4 seri'an bastos.
Mientras que el segundo de los subfndices nos diri'a exactamente de que
carta se trata, si es un 1 seria un As, y si es un trece seria un rey.
Y tambien es logico que podamos usar estas TABLAS no solo para
variables numericas enteras o reales, sino tambien para variables literales.
Y supongo que ya habras adivinado que el nombre de la tabla debera
en ese caso, terminar con el signo $.
Capftulo ^ Pagina 17 —
Mas BASIC
Y supongo tambien que ya estas pensando en aplicaciones de esto para
llevar las "fichas" de tus compafieros de estudios, la gente que ha reservado
asiento en el cine, o la coleccion de discos que posees. Y muchas mas.
4.12 Series de datos
El comando DATA puede establecerse para resenar en un programa una
"serie" de DATOS, (y por tanto, son CONSTANTES, y no variables); y
luego hacer que el ordenador APUNTE, mediante el comando READ,
cada una de esas CONSTANTES de la serie como valor de las VARIABLES
que deseemos. Los datos de la serie deben aparecer en una linea de
programa que comience con la palabra reservada DATA, y separando
las constantes que intervienen en la serie mediante el signo , . El ordenador
ira apuntando esos datos cada vez que ejecute un comando READ, en
forma SECUENCIAL; es decir, prepara un "puntero" que le indique en
cada momento cual es la ultima constante de la serie que le hemos
mandado que apunte mediante el comando READ, y cada vez que apunte
una constante de la serie como valor de la variable mencionada en el
comando, avanzara el puntero una posicion.
Veamos un ejemplo, teclea:
10 READ X, Y, Z
20 PRINT X;"+";Y;"+";Z;" = ";X+Y"Z
30 DATA 1,3,5
Las constantes de la serie pueden ser numericas o literales, o de ambas
clases. No te preocupes cuando no te quepan en una sola linea, simplemente
comienza otra linea con la palabra reservada DATA al principio. Cuando
el ordenador tropieza en el programa con una instruccion READ, interpreta
que queremos que apunte la constante que le toca como valor de la variable
mencionada en la instruccion; asi' que no le importa ni donde le hemos
reflejado ni cuantas instrucciones DATA le hemos dado. El sigue cambiando
SECUENCIALMENTE su "puntero" interne Lo unico que tienes que
cerciorarte es que concuerdan perfectamente en numero y en clase, las
constantes que pones en las instrucciones DATA, con las variables que
mencionas en las instrucciones READ.
La unica manera de interrumpir esta asociacion SECUENCIAL de constantes
a variables, es hacer que el ordenador REPUNTE al sitio que le menciones
en lugar de al siguiente que le toque. Usas el comando RESTORE, y le
indicas el sitio a donde quieres que REPUNTE, dandole a continuacion
un numero de linea de programa, que obviamente debe corresponder al
de una serie DATA. Y tambien, si no mencionas ningun numero de linea
a la que quieras que repunte, lo hara a la primera que haya en el programa.
El ejemplo siguiente ilustra el uso de estos comandos:
■Capftulo <f Pagina 18-
Mas BASIC
10 FOR C =1 TO X
20 READ X*
30 PRINT X*;" " •
40 NEXT C
50 RESTORE
60 GOTO 10
70 DATA HOLA, COMO T TE, ENCUENTRAS, HOY
Observa que aunque la linea con la serie de constantes esta colocada
en el ejemplo al final del programa, la puedes numerar y por tanto,
colocar donde te convenga.
En el ejemplo, lo unico que hacemos con las constantes es apuntarlas
sucesivamente como valores de la variable X$ que luego exponemos en
pantalla. Pero tambien podemos hacer que el ordenador las apunte en
una variable, y luego hacer con la variable lo que deseemos. Por ejemplo,
usarla en el comando que hace que el ordenador SUENE, comando SOUND.
Teclea:
10 FOR n=l TO 30
20 READ s
30 SOUND l,s, 40, 5
40 NEXT n
50 DATA 100, 90, 100, 1 10, 120, 1 10, 100,
60 DATA 130,120,110,0,120,110,100,0
70 DATA 100,90,100,110,120,110,100,0
80 DATA 130,0,100,0,120,150
Y si no oyes nada, y el programa lo has tecleado bien, ajusta el control
de volumen en el costado derecho del ordenador.
Para concluir esta breve introduccion al BASIC, aquf hay un programa
que te per mite jugar a una variante de las "21" con el CPC464. Demuestra
como se usan muchas de las posibilidades del BASIC, y debieras
comprenderlo facilmente merced al uso de nombres significativos para
las variables. Puedes embellecerlo con graficos, y afiadir ambiente con
sonido; y en general, desarrollar el tema de la evolucion de los mejores
programas BASIC a partir de un nucleo "humilde".
El objeto del juego es conseguir acercarte al total de 21, ahadiendo el
valor facial de las cartas en tu mano, y luego la casa intenta igualarte
o acercarse todavia mas al total 21, sin sobrepasarlo para no verse
"quebrado". Despues de teclear la linea 1, usa el comando AUTO para
que genere automatiamente los numeros de linea.
.Capftulo 4 Pagina 19-
Mas BASIC
1 REM A LAS VEINTIUNA
10 REM INJCIO
20 YC=2:CC=2
30 ASES=0
40 CACES-0
50 S=0
60 T=0
70 DIM MAN0S*<4)
80 MAN0S*<1)="TREB0LES"
90 MAN0S$<2)="C0RAZ0NES"
100 MAN0S*<3)=" PICAS"
110 MAN0S*<4)="DIAMANTES"
120 CLS
130 DIM CARTA (52)
140 FOR X=L TO 52
150 CARTA <X>=0
160 NEXT X
170 REM REPARTE DOS NAIPES PARA CADA JUGADOR
180 LOCATE 10,3)
190 PRINT "TU";SPC(15)"LA BANCA"
200 LOCATE 3,5
210 60SUB 740
220 S=S+F
230 IF F=ll THEN ASES=ASES+1
240 LOCATE 3,6
250 GOSUB 740
260 S=S+F
270 IF F=ll THEN ASES=ASES+1
280 LOCATE 24,5
290 GOSUB 740
300 T=T+F
310 IF F=U THEN CACES=CACES+1
320 LOCATE 24,6
330 GOSUB 740
340 T=T+F
350 IF F=ll THEN CACES=CACES+1
360 REM INPUT SIGUES (P) QUEDAS (Q)
370 X*=INKEY*:IF X*<)"Q" AND X*<>"P" THEN 370
380 IF X*="Q" THEN 560
390 LOCATE 3, YC+5
400 YC=YC+1
410 GOSUB 740
420 S=S+F
430 IF F=ll THEN ASES=ASES+1
-Capftulo 4 Pagina 20.
Mas BASIC
440 REM PUNTUACION Y OSES
450 IF S<22 THEN 370
460 IF ASES - THEN 500
470 OSES = flSES-1
480 S=S-10
490 GOTO 450
500 LOCATE 12, 19
510 PRINT "QUIEBRAS"
520 PRINT: PRINT"OTRA PARTIDA (S/N) "
530 X*=INKEY*:IF X*<>"S" AND X*<>"N" THEN 530
540 IF X*="S" THEN RUN
550 END
560 IF T>16 THEN GOTO 700
570 CC=CC+1
580 LOCATE 24, CC+4
590 GOSUB 740
600 T=T+F
610 IF F=ll THEN CACES=CACES-1
620 IF T<21 THEN 560
630 IF CACES = THEN 670
640 CACE6 = CACES- 1
650 T=T-10
660 GOTO 620
670 LOCATE 12, 19
680 PRINT "TU GANAS"
690 GOTO 520
700 LOCATE 12, 19
710 IF T<S THEN 680
720 PRINT"GANA LA BANCA"
730 GOTO 520
740 REM REPARTE NAIPE
750 LET AZAR=INT< RND<1)*52+1>
760 IF CARTA <AZAR)=1 THEN GOTO 750
770 CARTA (AZAR)=1
780 F=AZAR-13*INT(AZAR/13>
790 IF F=0 THEN F=13
800 IF F=l OR F> 10 THEN GOTO 850
810 PRINT F; " DE ";
820 IF F> 10 THEN F=10
830 PRINT MAN0S*(INT((AZAR-1)/13)+1)
840 RETURN
850 IF F=U THEN PRINT "JOT A DE ";
860 IF F=12 THEN PRINT "DAM A DE " ;
870 IF F=13 THEN PRINT "REY DE " ;
880 IF FOl THEN GOTO 820
890 F=ll
900 PRINT "AG DE"
910 GOTO 830
Capftulo * Pagina 21-
Mas BASIC
Pulsa S si "sigues" (y tu siguiente carta se sumara a las que ya tengas),
o Q si "quedas" y juega la casa. No pretendemos que sea la ultima palabra
en juegos de cartas con el CPC464, pero te proporciona el hueso sobre
el que puedes anadir carne en forma de graficos y sonido.
4.13 Expresiones Logicas
Una de las diferencias mayores entre una calculadora y una computadora,
es la habilidad del ordenador para manejar operaciones logicas en
instrucciones condicionales, tal como SI...PUES. Para hacer eso, los
operadores logicos tratan los valores sobre los que operan de acuerdo
a su equivalente en el sistema de numeracion binario; y ademas, lo hacen
tomando individualmente los bitos HOMOLOGOS de cada operando y
lo tratan por separado. Aunque la descripcion y utilizacion es
completamente LOGICA (pero de logica matematica), es bastante dificil
describirla en terminos simples sin recurrir a las definiciones precisas.
Pero vamos a intentarlo. (y el Apendice III ayudara).
Las dos partes de una expresion logica, se conocen como operandos y
el signo de operacion es normalmente una breve palabra que llamamos
operador logico. Por lo tanto, la sintaxis de una expresion logica es
<operando>[<operador logico><operando> ]
y el operando puede ser a su vez cualquier <numeral entero , cualquier
<expresion relacional> , o cualquier <expresion logical >.
Y te resaltamos que el numeral entero debe estar dentro de la gama
permitida de valores, y en caso contrario se produce un Error 6.
Esto que llamamos operaciones logicales, esta como veremos, estrechamente
vinculado a esas palabras que en la vida real nos sirven para conectar
frases condicionales, como por ejemplo en esta:
Si hace sol y si nieva, o si llueve, ire al museo.
Pero es algo mas complicado porque el ordenador solo nos interpretara
correctamente si no hay ambiguedades.
Los operadores logicos segun el orden de PRIORIDAD en la ejecucion,
son simbolizados en BASIC con las palabras clave AND, OR y XOR.
Y los resultados de una operacion con dos operandos de un solo bit, es
como sigue:
AND Da como resultado a no ser que ambos operandos sean 1.
OR Da como resultado 1 a no ser que ambos operandos sean 0.
XOR Da como resultado 1 a no ser que ambos operandos sean iguales
Representando con 1 y los dos si'mbolos de un sistema de numeracion
binario.
•Capftulo 4 Pagina 22-
Mas BASIC ■— —
El operador AND es el mas comunmente empleado.
PRINT 10 AND 10
Y el ordenador te respondera 10.
PRINT 10 AND 12
Y el ordenador te respondera 8.
PRINT 10 AND 1000
Y te respondera de nuevo 8.
Es debido a que los numeros 10 y 1000 tienen como equivalente en el
sistema de numeracion binaria (Apendice II), respectivamente los siguientes:
1010
1111101000
Y la operacion AND (tambien llamada YLIACION) va examinando el par
de bits homologos cada vez y solo coloca en la posicion homologa del
resultado un 1 cuando ambos operandos son 1. Por lo tanto, el resultado
es:
0000001000
...cuyo equivalente en el sistema decimal es precisamente 8, como nos
decia el ordenador. Pero en BASIC, es mas normal usar ese operador
AND para detectar si se cumplen simultaneamente dos condiciones (...Y
SI...). Aqui' hay un programa autoexplicativo:
10 CLS: INPUT "Numero del dia";dia
20 INPUT "Numero del mes";mes
30 IF dia=25 AND mes=12 GOTO 50
40 GOTO 10
50 PRINT "iFeliz Navidad!"
La operacion OR (tambien llamada OLIACION) opera bit a bit de la misma
manera, pero ahora el resultado es 1, salvo que ambos operandos sean
0. Usando la misma pareja de numeros que antes, tendriamos:
PRINT 1000 OR 10
1002
Y haciendo la operacion hallando el equivalente binario, tendriamos:
1010
1111101000
Que nos da como respuesta:
1111100010
que correspone en el sistema decimal a nuestro resultado de 1002.
— — — Capftulo 4 Pagina 23—
Mas BASIC
Todo eso signifies que podemos usar el operador OR para detectar si
se cumple una u otra de dos condiciones, incluyendo el caso de que se
cumplan las dos al mismo tiempo. Y aquf hay un programa ejemplo:
10 CLS:
20 INPUT "Numero del mes" ;mes
30 IF mes=12 OR mes=l OR MES=2 GOTO 50
40 CLS: GOTO 10
50 PRINT "Debemos estar en invierno"
Y tambien existe el operador logico NOT (tambien llamado NEGACION)
que opera unicamente con un operando) (operadores "monadicos") y que
en el caso de que el operando tenga un solo bit, podemos decir que el
resultado es cuando el operando es 1 y viceversa. Se emplea obviamente
para comprobar que NO se cumple una determinada condicion. Como
en el programa:
10 CLS
20 INPUT "Numero del mes";mes
30 IF N0T(mes=6 OR mes=7 OR mes=8) goto 50
40 CLS: GOTO 10
50 PRINT "iNo puede ser verano!"
La consideracion final mas importante es que podemos combinar un cierto
numero de condiciones logicas y con varios operadores logicos, como
te mostramos en este ejemplo:
10 CLS: INPUT "Numero del dia";dia
20 INPUT "Numero del mes" ;mes
30 IF N0T(mes=12 OR mes=l) AND dia=29 GOTO 50
40 CLS: GOTO 10
50 PRINT "Ni es Diciembre, ni es Enero, y puede que sea
un ano bisiesto"
Ahora bien, ten en cuenta que el resultado de una expresion de relacion
es tambien un numero que corresponde a o a -1. Y ademas, la
representacion en el sistema binario del numero decimal 0, es que todos
los bits sean 0, mientras que la del numero -1 es que todos los bit sean
1. El resultado de una operacion logica con dos" operandos que sean
expresiones de relacion, nos producira como resultado el numero decimal
-1 (cierto) o el numero decimal (falso).
Comprueba esto, anadiendo la linea 60 y 70 al programa anterior:
60 PRINT N0T(mes=12 OR mes=l)
70 PRINT (mes=12 OR mes=l)
Capftulo 4 Pagina 2^-
Mas BASIC
Y cuando ejecutes el programa, teclea 29 como el dia, y digamos, 5 como
el mes, con lo que se producira la respuesta segun la linea 50, y los valores
reales que son resultado de las expresiones logicas de las lineas 60 y
70, apareceran en las lineas mas abajo.
Finalmente, el operador XOR (igual que el operador OR pero eXcluyendo
el caso en que se cumplen las dos condiciones) produce el resultado
CIERTO siempre que ambos argumentos sean distintos. La tabla resumen
de todas estas combinaciones, es lo que se llama una TABLA DE LA
VERDAD; que es una forma conveniente de ilustrar lo que sucede en
la operacion logica cuando los operandos solo tienen un bit.
Operando A
Operando B
1
1
1
1
Resultado AND
Resultado OR
Resultado XOR
1
1
1
1
1
1
-Capftulo 4 Pagina 25-
GRAFICOS
5. Lo primordial de Graf icos
Siguiendo tu camino con los colores y graficos del CPC464.
Temas comentados en este capftulo:
* Modos de imagen y motas
* Los colores
* Tinta, Papel y Pluma
* Dibujando lineas
* Ventanas o vinetas
5.1 Peculiaridades de la maquina
La descripcion y aplicacion del BASIC AMSTRAD hasta ahora han estado
basadas en especificaciones standard en la industria. La mayoria de las
operaciones puramente aritmeticas solo necesitan ligeros ajustes al pasar
de un dialecto de BASIC a otro; sin embargo, los comandos BASIC que
controlan los graficos (y la ubicacion del cursor de textos) son mas
especi'ficos de cada maquina, y deben ser comprendidos cuidadosamente
para sacar el mayor provecho de tu microordenador.
Como siempre, las palabras clave del BASIC las presentaremos en negrita
para destacarlas, y tambien estan relacionadas alfabeticamente con una
breve descripcion en el capi'tulo 8.
5.1.1 Seleccion de colores
El NEGRO (la ausencia de color o iluminacion en la pantalla) se considera
como un color para el proposito de describir las posibilidades de colores
del CPC464 y los diversos comandos asociados a esas posibilidades.
El BORDE puede fijarse a "cualquier par de colores" sin tener en cuenta
el modo de imagen, y no se restaura a las condiciones iniciales cuando
se dicta al ordenador el comando MODE. Puede hacerse que parpadee
o palpite entre dos colores, o que muestre un color de manera permanente.
El numero de TINTAS disponibles, solo puede aprovecharse
simultaneamente dependiendo del MODO DE IMAGEN elegido. Tambien
cada TINTA puede fijarse para que palpite con una pareja de colores;
o que corresponda a un solo color. El PAPEL y la PLUMA usada en textos
y la PLUMA usada en graficos, puede estipularse para que corresponda
a una de las tintas disponibles.
; Capftulo 5 Pagina 1 —
GRAFICOS
5.1.2 Las relaciones entre PLUM A, PAPEL y TINTA
Excepto cuando se especifica el parpadeo entre dos colores, hay dos
TINTAS que afectan al texto mostrado en la pantalla: una de esas TINTAS
determina el color con que escribe la PLUMA; mientras que la otra
determina el color con que se da el "tinte" al PAPEL.
NB: El numero asociado con el comando PAPER es la INK declarada
para ese numero, y NO el numero de color enunciado en el Apendice VI.
Igualmente, el numero asociado con el comando PEN es la INK declarada
para ese numero, y NO el numero de color del Apendice VI.
El numero en el comando PAPER esta prescrito que sea cuando se
omite otra mencion expli'cita de numero. Mientras que el numero del
comando PEN esta prescrito a 1 para las omisiones. Para hacer que la
TINTA del PAPEL numero sea "verde", cuyo numero de color es el
9, tendremos por tanto que teclear:
INK 0,9
Igualmente, para estipular que la TINTA de la PLUMA numero 1 sea
"negro", cuyo numero de color es 0, teclearemos:
INK 1,0
Por supuesto que poniendo el PAPEL a la misma TINTA que usa la PLUMA
no podras observar el texto que haya en pantalla.
La escritura de texto puede hacerse que sea "transparente" (y el cursor
cuadrado que indica textos, siempre esta puesto para que sea transparente)
u "opaca", usando una serie de caracteres de control que permiten ampliar
provechosamente los comandos para graficos del BASIC. Con la opcion
de transparencia, puedes no tener en cuenta el color del papel y
sobreescribir los graficos, o puedes sobreescribir completamente el fondo.
Este breve programa ilustra los efectos disponibles, pero restaura antes
el ordenador pulsando CTRL, SHIFT y ESC, como ya estas acostumbrado.
10 MODE 1
20 INK 2, 19
30 DRAW 200,200,2
40 LOCATE 1,21
50 PRINT "1 NORMAL"
60 PRINT CHR*(22)+CHR*(1)
70 ORIGIN 0,0
80 DRAW 500,200,2
90 LOCATE 12, 18
100 PR I NT "2 TRANSPARENTE"
110 PRINT CHR*<22)+CHR*<0)
120 LOCATE 22, 15
130 PR I NT "3 NORMAL DE NUEVO"
•Capftulo 5 Pagina 2
GRAFICOS
El primer comando DRAW hace que el ordenador DIBUJE un segmento,
operacion que hace antes de que "pongamos" la opcion de transparencia,
lo que hacemos en la linea 60 mediante el envi'o a pantalla de CHR$(22)
+ CHR$(1), mientras que el segundo segmento que dibujamos en la linea
80 lo hace ya con la opcion transparencia puesta. Observa como los puntos
en que se solapan han cambiado de color, y como (con la opcion
transparencia), la tinta que rellena el caracter, ha sido completamente
sobreescrita.
Canjea la posicion de las instrucciones que hacen que el ordenador "ponga"
la opcion transparencia (linea 60) y que "quite" la opcion transparencia
(linea 110), y observa como esto afecta a la imagen en pantalla. Una
lista completa de todos estos comandos adicionales la damos en el
Apendice VI.
5.2 Modos de imagen en pantalla
Hay tres MODOS en que la imagen en pantalla (con textos y graficos)
aparece:
a) Normal
Modo 1: 40 columnas x 25 lineas, 4 TINTAS para textos
320x200 motas, accesibles individualmente con 4 colores
b) Modo multicolores:
20 columnas x 25 lineas, 17 TINTAS para textos
160x200 motas accesibles individualmente con 16 colores.
c) Modo alta resolucion:
80 columnas x 25 lineas, 2 TINTAS para textos
640x200 motas, accesibles individualmente con 2 colores.
Como puedes ver, la diferencia estriba en la cantidad de motas (elementos
individuales pictoricos (pixels)) que caben horizontalmente en cada linea.
No te confundas con las pequenas barras en la parte delantera del tubo
de un televisor, que es una peculiaridad del equipo monitor de television
que no guarda ninguna relacion.
Cada uno de los tres diferentes MODOS en que usamos la pantalla, es
lo que llamamos modo de imagen o de pantalla, y solamente puede aparecer
uno en cada momento usando el lenguaje BASIC. Al cambiar de MODO
hace que la pantalla se LIMPIE completamente, incluyendo todas las
VENTANAS de texto o graficos que hayamos estipulado (el mismo efecto
que con el comando CLS y CLG) pero no afecta en absoluto al programa
contenido en la memoria.
Los cambios de modo pueden hacerse con instrucciones BASIC, o pueden
darse por teclado directamente con el comando correspondiente.
Capftulo 5 Pagina 3
GRAFICOS
5.2.1 MODE
Corresponde a imageries multicolores
Pueden aparecer simultaneamente en pantalla 16 de los 27 colores
disponibles, y cada elemento individual de la imagen puede ser programado
en cuanto al color. La imagen esta compuesta de 160 motas en cada
linea horizontal, y 200 en cada columna vertical. Una "reti'cula" para
preparar figuras en este modo, aparece en el Apendice VI.
En el MODO 0, hay por lo tanto posibilidad de mostrar 20 TIPOS
(caracteres) en cada una de las 25 lineas.
5.2.2 MODE 1
Es el modo prescrito como standard
El MODO 1 esta prescrito en el CPC464 y es el adoptado al ponerlo en
marcha. En este modo se pueden mostrar simultaneamente 4 de los 27
colores disponibles, aunque puedes conmutar rapidamente a traves de
ttodos los 27, si lo deseas. La imagen contiene 320 motas a lo ancho^
por 200 motas a lo alto. Tambien en el Apendice VI aparece una reti'cula
adecuada para este modo.
En el MODO 1, hay por tanto 40 TIPOS (caracteres) en cada una de sus
25 lineas.
5.2.3 MODE 2
Es el modo de alta resolucion
El MODO 2 permite que se usen simultaneamente 2 colores de tinta,
y primordialmente se elige por su capacidad para producir 80 caracteres
de texto en cada una de sus 25 lineas, lo que hace que un programa sea
mucho mas facil de escribir y de examinar al poderse ver mucho mas
de cada programa con una sola pasada.
El MODO 2 permite 640 motas en el sentido horizontal, juntamente con
200 motas en cada columna vertical.
5.2.4 Ensayando
Con el CPC464 completamente restaurado, teclea el programa:
5 REM DEMOSTROCION EJEMPLOS DE GRAF I COS
10 MODE 1
15 INK 2,0
16 INK 3,6: REM
Capftulo 5 Pagina 4-
GRAFICOS
17 BORDER l: REM AZUL OSCURO
20 CLG: REM CLAREADO DE PANTALLA
30 b#=RND*5+l :REM PONIENDO VARIABLES ENTERAS
PSEUDO ALEATORIAS
40 c*=RND*5+l
50 ORIGIN 320,200 : REM FIJA ORIGEN GRAFICO
60 FOR a = TO 1000 STEP PI/30
70 xS=100*C0S(a>
80 MOVE xS, xS :REM MUEVE EL CURSOR GRAFICO
90 DRAW 200*C0S<a/b*),200*SIN<a/c%),3
:REM DIBUJA LA LINEA
91 IF INKEY*<>"" THEN 20
100 NEXT :REM RETROCEDE A 60 SINO SE INTERRUMPE EN 91
110 GOTO 20
Ahora EJECUTA el programa. pulsa "cualquier tecla" para conseguir otra
imagen diferente. Asi' se demuestran varias de las facultades importantes
de los circuitos y programas del CPC^'f. Con ellos el CPC464 "escribe"
en la pantalla suavemente sin tirones ni temblores, y mediante comandos
que consiguen efectos muy complicados con un minimo de esfuerzo. Las
instrucciones REM, simplemente sirven para reMEMOrar, pero no necesitas
incluirlas para que el programa f uncione; te ayudan a ti' y particularmente
a la gente que no escribio el programa pero lo esta estudiando para
comprender mejor el trabajo que hace.
Observando los numeros de linea, puedes detectar tambien algunas que
son consecuencia de reflexiones y recensiones, y aunque podriamos
presentar los numeros en intervalos constantes, RENUMerando, te ayuda
a ver la manera en que hemos desarrollado los programas a partir de
estructuras simples iniciales.
Guarda este programa en cassette, mediante, por ejemplo, el comando:
SAVE "GRAFICO 5.5.84"
Este otro programa de demostracion, PINTA una imagen coloreada con
distinto "cariz":
new
10 a*=INKEY*: REM PULSA UNA TECLA PARA
INICIAR UNA NUEVA SECUENCIA
20 IF a*="" THEN 10
30 CLS
40 m=INT<RND*3) : REM SELECCIONA UN NUMERO
ALEATORIAMENTE ENTRE Y 3
50 IF m>2 THEN 40 ."REM PRUEBA DE NUEVO
60 MODE m
70 il»RND*26:REM TOMA VALORES PARA INK ALEATORIAMENTE
80 i2=RND*26
90 IF ABS(il-I2)<5 THEN 70
100 INK 0, ill INK 1, i2
— Capftulo 5 Pagina 5 -
GRAFICOS
110 s=RND*5+3
120 ORIBIN 320,-100
130 FOR x= -1000 TO STEP s
140 MOVE 0,0
150 DRAW x,300:DRAW 0,600
160 MOVE 0,0
170 DRAW -x,300: DRAW 0,600
180 a**INKEY*
190 IF a*<>"" THEN 30:REM INTERRUMPE EL BUCLE
PRESIONANDO UNft TECLfl
200 NEXT X
210 GOTO 10
Tanto este como el programa anterior, ilustran simples conceptos
matematicos de una forma coloristica y televisiva. Ambos basicamente
hacen sumas de numeros generados al AZAR a partir de un determinado
"germen" para garantizar que cada una de las imagenes tienen diferente
cariz, y muestran los resultados como segmentos aleatoriamente situados.
Tu CPC464 es tambien un excelente "impreso" electronico para dibujar
funciones y curvas geometricas, y una de las que tienen un cariz mas
conocido es la que corresponde a una "onda sinusoidal".
10 REM DIBUJfl SINUSOIDE
20 MODE 2
30 INK 1,21
40 INK 0,0
50 CLS
60 DEG
70 ORIGIN 0,200
80 FOR n=0 TO 720
90 y=SIN(n)
100 PLOT n*640/720, 198*y, 1
110 NEXT
La instruccion PLOT, hace que la maquina PINTE una sola mota, en la
parte de la pantalla determinada por las coordenadas mencionadas en
la instruccion. En este ejemplo, y mediante el bucle que empieza en la
linea 80 y culmina en la 110, aparece la curva del seno, pintada mota
a mota.
El CPC464 dispone de muchos comandos, simples y potentes, que anaden
efectos especiales al programa anterior. Por ejemplo, con:
15 BORDER 6,9
Capltulo 5 Pagina 6
GRAFICOS
Hacemos que el BORDE presente sucesivamente los colores correspondientes
a los numeros 6 y 9. El ritmo o cadencia de palpitacion, esta prescrito
a su valor habitual. Para hacer que el programa deje de dar "rondas"
sin cesar, ESCapa (y por dos veces para interrumpirlo, porque con una
sola, simplemente suspendes la operacion), luego anade la instruccion:
120 BOTO 50
Observa que el borde no cesa de palpitar aunque el programa ya ha
concluido, y es debido a que el borde que enmarca la imagen se controla
independientemente del resto del programa. Para detener el parpadeo
del borde y hacer que sea permanentemente azul brillante, cambia la
li'nea 15 para que sea:
15 BORDER 2
Y observaras que al concluir la EJECUCION del programa, cesa la
palpitacion del borde. Para cambiar el color con que la PLUMA PINTA
la li'nea y para cambiar la tinta del PAPEL que usa, cambia las
instrucciones INK respectivas, en las li'neas 30 y 40. Ahora, cuando le
hagas que LISTE el programa, aparecera:
10 REM DIBUJft SINUSOIDE
15 BORDER 2
20 MODE 2
30 INK 1,2
40 INK 0,20
50 CLS
60 DEG
70 ORIGIN 0,200
80 FOR n=0 TO 720
90 y=SIN(n)
100 PLOT n»640. 720, 198*y, 1
110 NEXT
120 GOTO 50
El numero 1 al final de la instruccion PLOT de la li'nea 100, le dice al
ordenador que PINTE la curva con el color correspondiente a la TINTA
1 (que es la de la PLUMA), elegida en la instruccion numero 30. Comprueba
la definicion del comando PLOT en la lista de palabras clave del capitulo
8, y veras exactamente como afectan al comando los diversos
PARAMETROS que puedes resenar.
Si miras concienzudamente la curva que se esta pintando en la pantalla,
veras que no es una li'nea perfectamente continua, sino que esta formada
por segmentos diminutos. El mas pequeno de esos segmentos, es lo que
hemos llamado MOT A anteriormente (y que como es un elemento
"pictorico", tambien se le llama "pixel").
-Capitulo 5 Pagina 7
GRAFICOS
5.2.5 El invisible cursor para graficos
Ya has ensayado algunas de las maneras en que puedes usar en los
programas la capacidad grafica del CPC464, y algunos de los conceptos
y comandos han tenido la oportunidad de mostrar su actuacion. Cuando
quieres sacar rectas y curvas en la pantalla, hay que vigilar algunas
consideraciones importantes para evitar confusiones.
El primer punto a vigilar es el estado presente de la memoria, en el
recinto reservado al programa. El ordenador recuerda como tienes en
cada momento estipulados los colores, incluso aunque le hayas dado el
comando NEW para DESNUDAR la memoria de programa. Para restaurar
todas las condiciones iniciales, prescritas en fabrica para que actuen
al poner en marcha el ordenador, debes pulsar sucesiva y simulteneamente
CTRL, SHIFT y ESC para volver a esas condiciones, sin necesidad de
apagar y encender de nuevo, pero por supuesto, debes hacer que GUARDE
todo en el cassette, antes de restaurar.
Vamos a comprobarlo, tecleando simplemente:
NEW:CLS
...despues de hacer que el ordenador interrumpa la ejecucion del programa.
Teclea ahora:
DRAW 100, 100
El comando DRAW pide al ordenador que DIBUJE una linea recta a partir
del punto en que se encuentre en ese momento el cursor de graficos
(invisible) hasta el punto cuyas coordenadas x e y, son las mencionadas
en el comando (100,100). Aunque es invisible, el cursor de graficos es
un "ente" que la maquina maneja internamente para saber las coordenadas
del punto recien aceptado por el ultimo comando que hayas hecho en
relacion con graficos.
Pero si' puedes saber las coordenadas donde esta UBICADO en cada
momento el cursor de graficos, mediante las funciones XPOS e YPOS.
Despues del comando DRAW anteriormente dado al ordenador, es logico
que si tecleas:
PRINT XPOS
Te de como respuesta/
100
(y lo mismo ocurriria con YPOS en este momento).
Capitulo 5 Pagina 8
GRAFICOS
Observa que aunque debido a la longitud de texto, llegues hasta la parte
inferior de la pantalla, con lo que provocas que se DESPLIEGUE la imagen
subiendo una linea, y que a pesar de que tambien subira la imagen grafica
que puedas tener, las coordenadas correspondientes a la ubicacion del
cursor de graficos, continuan con los valores que teni'an. Puedes facilmente
ensayar con esto, manteniendo la tecla de BAJADA DE CURSOR (4-) hasta
que la pantalla q^uede limpia, y preguntar en esa situacion la UBICACION
del cursor de graficos. Continuara con la misma coordenada x, y con
la misma coordenada y.
Para especificar el color con que queremos que DIBUJE una linea, anade
un parametro mas al final del comando DRAW. (Puedes ver la descripcion
que hemos hecho del comando PLOT en el programa anterior, porque
funciona de la misma manera).
Debes primeramente, especificar la TINTA, y recuerda que solo puedes
usar los numeros de colores admitidos en el modo de pantalla en que
estes. Para ensayar con esto, teclea:
10 MODE 1
20 INK 0, 10
30 ORIGIN 0,0
40 INK 1,26
50 INK 2,0
60 DRAW 320, 400, 1
70 DRAW 640,0,2
Aquf hay un ejemplo que usa todos los conceptos y comandos mencionados
hasta ahora, al mismo tiempo que presenta una pareja nueva de conceptos
fructi'feros. Observa como en la primera instruccion estipulamos las
condiciones de color de la TINTA usada con la PLUMA y con el PAPEL,
para asegurar que se anula el efecto de las condiciones que hubiera en
la memoria del CPCt64, y producir los resultados que queremos:
10 INK 0,0:INK l,26sINK 2,6:INK 3,18: BORDER
20 REM dibuja figuras regulares
30 mode l:DEG
40 PRINT "3,4 o 6 lados ? ";
50 LINE INPUT p*
60 IF p*="3" THEN sa= 120: GOTO 100
70 IF p*="4" THEN sa= 135: GOTO 100
80 IF p*="6" THEN sa= 150: GOTO 100
90 GOTO 50
100 PRINT: PRINT "Calculando" ;
105 IF p*="3" THEN ORIGIN 0,-50,0,640,0,400
ELSE ORIGIN 0,0,0,640,0,400
110 DIM cx(5),cy(5),r(5), lc(5)
120 DIM np<5>
130 DIM pxX(5,81>,py%<5,81>
140 st=l
Capitulo 5 Pagina 9
GRAFICOS
150
cx(l)=320:cy<l)=200:r(l)=80
160
FOR st = l TO 4
170
r(st+l)=r(st)/2
180
NEXT st
190
FOR st = l TO 5
200
lc(st)=Osnp(st>=0
210
np(st )=np(st)+l
220
px%(st,np(st))=r(st)*SIN(lc(st))
230
py% <st , rip (st ) ) =r (st ) *COS ( lc (st ) )
240
lc(st)=lc(st)+360/r(st>
245
IF (lc(st) MOD 60) =0 THEN PRINT "." ;
250
IF lc(st) < 360 THEN 210
252
px%(st, np(st)+l)=px*(st, 1)
254
py%(st,np(st)+l)=py%(st, 1)
260
NEXT st
265
CLS:ink 1,2
270
st = l
280
GOSUB 340
290
LOCATE 1, 1
300
EVERY 25, 1 SOSUB 510
310
EVERY 15,2 60SUB 550
320
EVERY 5,3 GOSUB 590
330
GOTO 330
340
REM dibuja urt circulo con mas de 3, 4 o
6 lados
350
cx*=cx(st) :cy*=cy(st) slc(st)=0
360
FOR x%=l TO np(st)
370
MOVE cx*,cy*
380
DRAW cx*+px%(st, x*> , cy%+pytf (st, x*) ,
l+(st MOD 3)
390
DRAW cx%+px*(st, x%+l),cy%+py*(st,
x%+l), l+(st MOD 3)
400
NEXT x*
410
IF st=5 THEN RETURN
420
lc(st)=0
430
cx(st+l)=cx(st)+1.5*r(st)*SIN(sa+lc(st))
440
cy (st+1 ) =cy (st ) +1 . 5*r (st ) *COS (sa+lc (st ) )
450
st=st+l
460
GOSUB 340
470
st=st-l
480
lc (st ) =lc (st ) +2»sa
490
IF (lc(st) MOD 360)0 THEN 430
500
RETURN
Capftulo 5 Pagina 10-
GRAFICOS —
510 ik(l)=l+RND*25
520 IF ik<l)=ik<2> OR ik(l)=ik<3> THEN 510
530 INK 1, ik(l)
540 RETURN
550 ik<2)=l+RND*25
560 IF ik(2)=ik(l) OR ik(2)=ik(3) THEN 550
570 INK 2, ik(2)
580 RETURN
590 ik(3)=l+RND*25
600 IF ik(3)=ik(l) OR ik(3)=ik(2> THEN 590
610 INK 3, ik(3)
620 RETURN
Cuando ejecutes este programa, te hara una pregunta (linea 40), y contesta
tres en esta ocasion para conseguir mas rapidamente resultados. El
programa te anunciara despues: Calculando, y te ira exponiendo un punto
cada pocos segundos (linea 245) para indicar que todavia "se lo esta
pensando" y confirmar que el programa sigue ejecutandose.
Las SUBRUTINAS (parrafos del programa que empiezan en una determinada
linea y terminan con el comando de VUELVA (RETURN)), que son
CITADAS en las lineas 300, 310 y 320, obligan a que la imagen parpadee
con diferentes tintas, y a las "cadencias" determinadas por el comando
EVERY, que fija CADA cuanto tiempo debe hacerlo. Por lo tanto, si
quieres ralentizar el parpadeo, cambia las linea 300 a 320 para que digan:
300 EVERY 250, 1 GOSUB 510
310 EVERY 150,2 GOSUB 550
320 EVERY 50,3 GOSUB 590
Para ver lo que has conseguido, estudia el comando EVERY en el capitulo
8, ya que es una de las facultades mas aprovechables del BASIC AMSTRAD,
Uno de los efectos interesantes de este comando EVERY, n segundos
segun su TEMPORIZADOR m, vaya a la subrutina que comienza en la
linea mencionada, es la manera en que va apilando estas recuestas si
se interrumpe el programa pulsando la tecla ESC, solo "una vez".
Al hacer esto, suspende la operacion del programa durante unos pocos
segundos y luego reanudala pulsando "cualquier tecla". La imagen palpitara
freneticamente, ya que las temporizaciones solicitadas han "sido puestas
en la cola" y se apresuran a tomar la vez. En cada una de las "colas"
que el sistema mantiene, solo hay un espacio limitado, asf que despues
de un rato, un nuevo comando EVERY se ve desechado hasta que haya
espacio disponible porque ya se ha vaciado parte o enteramente alguna
de las colas.
Capitulo 5 Pagina 11-
GRAFICOS
5.3 Ventanas o vifietas
El usuario puede seleccionar hasta 8 ventanas o vifietas de texto en los
que escribir caracteres, y tambien una ventana o vineta de graficos en
que pueda pintar. Las ventanas estipuladas se anulan cuando se cambia
el modo de imagen. Estudia las descripciones correspondientes del capitulo
8.
NB: Si la ventana de texto es equivalente a toda la pantalla (el valor
prescrito para omisiones), el DESPLIEGUE rapido de las imagenes se
consigue por los circuitos electronicos. Si la ventana de textos es menor
que el area disponible en pantalla, el CPC464 consigue el "despliegue"
de las imagenes por programas internos, que por lo tanto es mucho mas
lento.
El comando WINDOW, especifica los margenes izquierdo/derecho/superior/
inferior que corresponden al CAUCE de comunicacion con esa ventana,
y por tanto a la posicion que ocupa la ventana dentro de la pantalla.
Esas ventanas o vifietas pueden solaparse unas con otras, permitiendo
asi' un metodo rapido para rellenar las vifietas. Antes de comenzar a
explorar esta nueva facultad, teclea:
KEY 139, "mode 2:paper 0:ink 1,0: ink 0,9:
list"+chr*<13)
Con esto haces que al pulsar la pequefia de las teclas ENTER, se limpie
y restaure el sistema y se estipulen colores visibles K de manera que no
te pierdas en una combinacion con la misma TINTA para el PAPEL y
la PLUMA. El ejemplo fabrica una serie de ventanas a lo ancho de la
pantalla, e ilustra dos puntos importantes:
5 MODE
10 FOR n=0 TO 7
20 WINDOW #n,n+l,rH-6,n+l,n+6
30 PAPER # n, n+4
40 CLS #n
50 FOR c=l TO 200: NEXT
60 NEXT
El primero de esos puntos es que cada nueva imagen sobre-escribe la
anterior, y el segundo que queremos destacar es que los mensajes siguen
enviandose por el CAUCE numero en todo momento (a no ser que
expli'citamente digas otra cosa). Antes de hacer cualquier otra cosa,
LISTA el programa, y veras como sigue siendo enviado a traves del
CAUCE 0.
Ensaya ahora:
LIST #5
L
Capitulo 5 Pagina 12-
GRAFICOS
Y luego:
CLS #6
para comprender lo que hemos dicho, a saber que el ultimo CAUCE hacia
la pantalla que se emplee sobre-escribira todo lo demas, mientras que
el mensaje tfpico del sistema Ready continua siendo enviado a traves
del CAUCE 0; incluso aunque hayas hecho que el listado se envi'e a traves
del CAUCE numero 5.
Ademas es posible usar un comando para obligar al ordenador a que
CAN3EE ventanas, mediante el comando SWAP. Anade, por ejemplo la
li'nea 55:
55 IF n=3 THEN WINDOW SWOP 7,0
Y puede que supongas que enviara el mensaje Ready por el cauce 7. Pero
ejecutalo y comprueba. Al desarrollar este programa tan jsimple!,
apreciaras la manera en que el CPC464 utiliza sus potentes facultades
en cuestion de manipular vinetas dentro de la pantalla.
-Capftulo 5 Pagina 13-
>
r
SONIDOS
6. Lo primordial de Sonidos
Los efectos sonoros son reproducidos por un altavoz incorporado en el
propio ordenador. Si estas usando el modulador/alimentador MP1 y un
televisor, gira por tanto el control de volumen de tu TV a un minimo.
El VOLUMEN del sonido puede ajustarse usando el boton VOLUME en
el costado derecho del ordenador. El sonido puede tambien ser enviado
al enchufe de entrada auxiliar de tu cadena estereo, a traves del enchufe
de entrada/salida (I/O) en la parte izquierda del panel trasero del
ordenador. Eso te permitira escuchar el sonido generado por tu ordenador
en estereo, a traves de altavoces o auriculares de alta fidelidad.
El CPC464 SUENA tan bien como aparenta. Para conseguir aprovechar
las facultades sonoras en forma inimaginable, necesitas comprender
previamente la filosofia que gobierna las estructuras de tiempos y tonos.
*
*
Temas tratados en este capftulo:
Perfodos (duracion) del tono
Haciendo que SUENE
Envolventes
* "CHORROS" de notas y sincronizacion
Si todo lo que quieres hacer es simplemente que el ordenador emita un
pitido, teclea:
PRINT CHR*(7)
Y no vayas mas alia, con lo que ya habras conseguido todo lo que pueden
dar otros ordenadores personales. Pero si lo haces, te perderas algunas
de las facultades mas interesantes y motivadoras del CPC46^, asi que
esta seccion es un fundamento que te dara una vision general del tema,
seguida de un analisis pormenorizado de las palabras reservadas y de
como dar los comandos. Proporcionara al programador los fundamentos
para saber como construir un "chorro" de notas, inventar diversas clases
e instrumentos musicales, y estructurar sus "tonadas" usandolos.
Capftulo 6 Pagina 1'
SONIDOS
L
6.1 Fundamentos del comando SOUND
Cuando escuchas el sonido de una NOTA MUSICAL standard, generada
por un diapason, hay varios atributos que debes considerar:
1) El tono y las variaciones del tono en el tiempo que dura la nota.
2) Volumen y variaciones en el volumen en el intervalo de tiempo que
dura la nota.
3) Duracion de la nota.
6.2 El TONO
En una nota musical pura, el tono es con mucho, el atributo mas
importante. Una nota musical pura puede describirse como una oscilacion
regular, y como todas las oscilaciones, tiene FRECUENCIA, PERIODO
y AMPLITUD.
tiempo (segundos)
Figura 1: Las caracteristicas de las notas musicales puras.
La frecuencia es el numero de oscilaciones que da en cada segundo,
mientras que el periodo es la duracion de cada una de esas oscilaciones.
La amplitud es el nivel maximo alcanzado y esta relacionado con el
volumen, y no concierne en absoluto con la definicion del TONO de una
nota.
Facilmente veras que frecuencia y periodo estas relacionadas unas a otras
simplemente por:
Frecuencia (expresada en ciclos por segundo) = 1 /Periodo (expresado
en segundos)
La relacion entre la frecuencia y el <perfodo del tono> emitido por el
altavoz del ordenador con el comando SOUND, viene dado por:
Frecuencia (expresada en ciclos por segundo) = 125/<peribdo del
tono>
Capitulo 6 Pagina 2
►i
SONIDOS
Por lo tanto, un periodo del tono de 1000 dari'a como resultado un tono
con frecuencia de 125 cps, y un periodo del tono de 125 dari'a como
resultado un tono (bastante comun en telefonia) de 1000 cps.
Cualquiera de estas magnitudes pudiera usarse para estipular el TONO,
pero en el BASIC AMSTRAD hemos elegido la que hemos llamado <peri'odo>
del tono. No te confunda el hecho que a medida que crece de valor el
periodo, el tono se hace mas grave. La gama de periodos disponible es
amplia (0 a 4095) y debe designarse por un numeral entero. Y a pesar
de ello, puede tener errores de redondeo en el tono emitido, pero nadie
lo notara excepto quizas, un musico o un critico musical. Consulta tambien
el Apendice VII.
Cuando en un instrumento musical tradicional se toca una determinada
nota, el TONO, puede variar, y algunas veces deliberadamente por
"vibrato". Usando el comando que permite definir la ENVOLVENTE DE
TONO, abreviado ENT, podemos estipular la forma especi'fica en que^
debe variar en PASOS discretos el tono, a lo largo de toda la duracion
de la nota; y esa envolvente de tono puede ser mencionada en el comando
SOUND. Igualmente sucede con la ENVOLVENTE DE VOLUMEN,
abreviado ENV.
6.3 Volumen de las notas
El volumen es simplemente la medida de lo fuerte que suena. Para
estipular el nivel inicial de volumen por cada nota generada en el CPC464,
con el comando SOUND, disponemos de una gama de valores de a 15.
Este valor para el volumen de la nota emitida, tambien puede mencionarse
en el comando SOUND, y haremos referenda a el, diciendo simplemente
<volumen>, y recuerda que puede ser una variable numeral entera.
Si ya has ensayado con algunas notas simples, habras notado la poca gracia
que tienen las notas puras, ya que el ordenador todavia no ha "elaborado"
los otros atributos de la nota. La diferencia con los instrumentos musicales
condicionales, radica que en ellos cuando se toca una nota el volumen
va comenzando a crecer durante la primera parte de la nota -denominado
el "ataque" se mantiene mas o menos constante durante un rato, y luego
vuelve a decaer cuando esta terminando la nota emitida -denominada
la "cai'da",
Ademas, cada instrumento musical tiene una forma diferente de "atacar"
las notas, mantenerlas, y de "cai'da" que le es especi'fico, y que en el
ordenador CPC464 podemos simular si ajustamos el volumen para que
vari'e en pasos o secciones a lo largo de la duracion de la nota. Y es
lo que denominamos <envolvente de volumen>, y que podemos alterarla
con el comando que usa la palabra clave ENV.
Capftulo 6 Pagina 3
SONIDOS
6.4 Duracion de las notas
La longitud en tiempo de las notas es una de las facetas basicas de
cualquier composicion musical; la unidad musical para la duracion o longitud
en tiempo de las notas es la CORCHEA, y hay minimos, semicorcheas,
etc. que simplemente son multiplos o divisores de esta unidad basica.
Pero como ademas las TONADAS pueden tocarse con diferente ritmo
o velocidad, es necesario que esta unidad basica de duracion o periodo
de referenda para la corchea "standard", tenga que determinarse.
Para que no tengas que molestarte, hay un parametro del comando SOUND
conocido como <duracion>, que ha de ser una variable numerica entera,
y en que una unidad representa una centesima de segundo (1/100 segundo).
Observa que tambien queda conformada por el parametro <envolvente
de volumen>, y de esta forma evitamos las posibles confusiones.
■Capftulo 6 Pagina 4
SONIDOS
ACORDES en los canales sonoros
o
< cE U
to ro 03
c c c
ED fl tu
U U U
C C C
o o o
u u u
c c c
o o o
1_ L. L.
u u u
c c c
1/1 in 1/1
Hi u
Qi C£ QC
OaNVM3dS3
VION §<7
< 'a
— 1 —
Sic2
ul
•
oaNvyadsa
VION e£
1
1
f-,
1
1
O 1
iij
z
OdNVH3dS3
VION e3
1
< 1
1
ml
<N 1 W
OaNVH3dS3
VION §1
1
SIS
u |a:
o
c
(0
OONVNOS
VION
1
i
1
1
°!
E
o
U
1
<
<
z
<
u
CQ
<
Z
<
u
i
u
<
z
<
u
■a- j- -a-
< cD U
< CO U
Capftulo 6 Pagina 5-
SONIDOS
6.5 Otros SONIDOS
El ruido aleatorio ("ruido bianco") tambien puede ser generado por el
ordenador mediante el comando SOUND, pero no es una nota musical.
Puede anadirse como fondo de las melodias para crear variaciones
interesantes, o simplemente usarlo por si' solo para efectos especiales.
Y observa que la explosion es basicamente un ruido bianco con un
parametro de <envolvente de volumen> especi'fico. Este ruido consta de
tonos cuya frecuencia varia aleatoriamente y que duran lo estipulado
en el parametro <periodo de ruido del comando SOUND. Una de las
importantes facetas de este ordenador es que aunque hay tres CANALES
disponibles separadamente y con la posibilidad de estipular tres <periodos
de tono>, solo un <periodo de ruido puede aparecer en la combinacion
de canales que se elija.
6.6 Sonidos multiples y canales
La mayoria de las piezas musicales se escriben usando dos claves como
minimo: clave en FA y clave el SOL. Para simular este aspecto en el
CPC464, se dispone de tres canales de sonido denominados A, B, C.
En todos ellos se puede emitir sonidos independientemente, o puede hacerse
que esten sincronizados. La seleccion del canal por donde se envia la
nota, se efectua mediante el parametro <estado de canal> del comando
SOUND.
6.7 "Chorros" de notas en los canales
Cada canal de sonido recibe las notas que debe emitir, una a una,
formando un "chorro". En el ordenador se dispone de espacio para formar
estos "chorros" solo para cinco comandos SOUND sucesivos; y uno de
ellos, el que ocupe la posicion inicial, decimos que es el activo, y las
otras cuatro posibles notas que estan esperando o "a la cola". El sistema
operativo del CPC464 puede continuar realizando otras tareas mientras
se estan emitiendo sucesivamente las notas que forman el chorro de cada
canal, y solo vuelve cuando necesita conseguir mas notas sonoras a emitir.
6.8 Estado del canal
La funcion SQ aplicada a un determinado canal, nos entrega un valor
correspondiente al estado de ese canal, y mediante ese valor podemos
saber como es el chorro de notas que hay en ese canal; es decir, lugares
sin notas, notas ACORDES, retenciones, etc. Puede usarse el comando
ON SQ GOSUB como una interrupcion al sistema para que preste atencion
a la seccion del programa que genera los sonidos, cuando el estado del
canal es uno determinado.
Captulo 6 Pagina 6
SONIDOS
6.9 Retenciones y ACORDES
Para forzar que las notas sean emitidas al unisono, existe la posibilidad
de marcarlas como ACORDES. En ese caso, la marca se coloca sobre
aquellas notas de los diversos chorros que deben sonar simultaneamente,
y se hace mediante el parametro correspondiente del comando SOUND.
Es muy util para iniciar la temporizacion de los chorros de notas, cuando
la melodia contiene pausas o intervalos de reposo, que no ocurren
simultaneamente en los canales.
Tambien es posible disponer la facultad de RETENER una determinada
nota del chorro de manera que se logre la sincronizacion global de los
canales (i.e. al arranque de una tonada), y puede ser con.un cierto retardo,
y para todo ello es necesario haber marcado previamente la nota de ese
chorro de forma adecuada. Tambien se dispone del comando RELEASE
que permite se libere un chorro de notas que estuviera retenido.
6.10 Comandos de generacion de tonos
Forma del comando: SOUND G,H,I,J,K,L,M
Siendo: G: Estado del canal
H: Periodo del tono
I: Duracion de la nota
J: Volumen de arranque
K: Envolvente de volumen
L: Envolvente de tono
M: Periodo del ruido
El comando SOUND lo que hace es emitir un sonido, conformado por
los parametros G a M, hacia los circuitos generadores de sonido del
ordenador. Los valores de los parametros G a M han de ser enteros y
dentro de la gama permitida, y unicamente es obligatorio siempre
especificar los dos primeros. Los restantes son opcionales, pero tienen
valores prescritos para cuando son omitidos, que comentaremos
inmediatamente.
6.10.1 Descripciones de los parametros: G: Estado del canal
Gama de valores 1 a 255.
Prescrito para misiones: ninguno (obligatoriamente debe darse un valor).
Con el CPC464 es posible emitir tres sonidos diferentes al unisono. Eso
lo logra porque tiene tres CANALES de sonido, llamados A, B, C, donde
el organo central del ordenador va construyendo un CHORRO DE NOTAS,
que los circuitos generadores de sonido procesaran y enviaran al altavoz.
Capftulo 6 Pagina 7-
SONIDOS
DECIMAL
BIT N°
1
BAN
2
1
4
2
8
3
16
4
32
5
64
6
128
7 BUN
El estado del canal viene dado por un numeral entero con notacion decimal,
que debe ser convertido al equivalente en binarlo, para poder entender
el significado, ya que es el estado de cada uno de los 8 bits el que
especifica la accion correspondiente al sonido enviado al canal o canales
pertinentes.
ACCION
envia la NOTA al canal A
envia la NOTA al canal B
envia la NOTA al canal C
marca ACORDE con canal A
marca ACORDE con canal B
marca ACORDE con canal C
retencion de canal
oclusion de canal
(BAM corresponde al Bit Anterior del Numero, que es el bit mas
significativo (en ingles LSB). BUN es el Bit Ultimo del Numero que es
el menos significativo (en ingles MSB).
Algunos ejemplos con valores en el sistema decimal son:
2 = envia el SONIDO al canal B
5 =4+1 envia el SONIDO a los canales A y C
98=64+32+2 envia el SONIDO al canal B, marcandolo como ACORDE
con el canal C y establece retencion del canal B.
Es importante recordar que si se estipula que haya un ACORDE entre
dos o mas canales, es necesario marcar el parametro de <estado del canal>
en cada uno de ellos en el momento oportuno.
La RETENCION detiene la elaboracion de ese sonido, y libera el chorro
de notas que haya detras del que esta actuando, y no puede ser usado
el canal hasta que sea LIBERADO con el comando RELEASE, o sea
DERRIBADO dicho canal mediante un comando SOUND con el parametro
pertinente.
Cuando se especifica OCLUSION de un canal o canales, fijando el valor
adecuado en el parametro <estado> de un comando SOUND, se ejecuta
inmediatamente la cancelacion de todo el chorro de notas que pueda
haber en espera, y cualquier nota que este sonando en ese momento queda
inmediatamente cortada. El canal queda desactivado.
H: Perfodo del tono
Gama de valores: a 4095.
Prescrito para omisiones: ninguno (valor obligatorio).
Capftulo 6 Pagina 8
SONIDOS
Estipula que la frecuencia del sonido a generar (tono de la nota), sea
la que resulte de evaluar la formula:
frecuencia = 125000/periodo del tono
Si se usa el valor 0, no se generara ningun tono, lo que puedes aprovechar
cuando solo requieras RUIDO.
I: Duracion
Gama de valores: -32768 a +32767
Valor prescrito para omisiones: 20
Para valores positivos, este parametro establece la duracion en centesimas
de segundo. Cuando es igual a 0, la duracion viene controlada por la
longitud de la envolvente de volumen que se especifique.
Cuando el valor de la duracion es negativo, su valor absoluto representa
el numero de veces que se repetira la envolvente de volumen especificada.
3: Volumen de la nota
Gama de valores: a 15 (0 a 7 si no se especifica envolvente de volumen).
Valor prescrito para omisiones: 12 (4 cuando no se especifica envolvente
de volumen).
Es el volumen de arranque o "ataque" de la nota, y se ve alterado cuando
se especifica una envolvente de volumen. El cero corresponde a sin
volumen inicial.
K: Envolvente de volumen
Gama de valores: a 15
Prescrito para omisiones:
El valor de este parametro especifica una envolvente definida previamente
mediante el comando ENV. Cuando se usa el como valor de este
parametro, el volumen no puede cambiarse con ningun comando ENV,
y queda constante durante 2 segundos y al nivel de volumen que tenga
el ordenador.
L: Envolvente de tono
Gama de valores: a 15
Prescrito para omisiones:
Este parametro especifica una envolvente de tono definida previamente,
con el comando ENT. Si se usa el valor para el parametro, no puede
cambiarse el tono por ningun comando ENT y queda constante en todo
el <periodo de tono>.
■ Capftulo 6 Pagina 9 — •
SONIDOS
M: Perfodo de ruido
Gama de valores: a 15
Prescrito para omisiones:
Especifica el ruido a anadir a la nota generada con el comando. Si se
usa el valor 0, no se anade ningun ruido. Recuerda que solamente puede
estipularse un periodo de ruido cada vez. Lo que significa que todos los
canales que tengan estipulado ruido, recibiran el mismo ruido.
6.11 La envolvente de volumen usando el comando ENV
El inicio del sonido (ataque) y la culminacion (cai'da) se requieren para
hacer que las notas tengan vida propia. El comando de ENVolvente de
volumen permite establecer el perfil del volumen a lo largo del tiempo
de duracion de la nota. Es conveniente antes de describir dicho perfil
al ordenador, usar un papel a escala para esbozar tus requisites, como
en el ejemplo:
volumen
ENV 1.5,3.1,1.0,16.5,-3,2
tiempo
1/100 segundos)
Figura 3: Ejemplo de envolvente de volumen.
La curva debe ser traducida a numeros de modo que puedan resenarse
en el comando. Para hacerlo, subdivi'dela en secciones, en cinco secciones
como maximo. En cada seccion debes aproximar la curva primero como
una li'nea recta y luego como una li'nea quebrada o escalonada, con el
numero de escalones o pasos que quieras, y que llamaremos <cuenta de
pasos>; y a estos pasos les corresponded una cierta longitud en tiempo
que llamaremos <lapso>y que mediremos en centesimas de segundo.
Al ir efectuando cada paso para dar un incremento o una disminucion
de volumen, que denominamos <altura del paso. Si no se especifican
pasos en una seccion, corresponded al volumen establecido en la seccion
inmediatamente anterior.
■Capftulo 6 Pagina 10-
SONIDOS
NB: Al intentar simular la envolvente especi'fica de un instrumento musical,
sucede a menudo que el volumen inicial y final de cada nota sera 0, asi'
que el volumen de arranque que estipules en el comando SOUND habra
de ser 0, y todo el volumen cambiado segun la envolvente.
Forma del comando ENV:
ENV N,P1,Q1,R1,P2,Q2,R2,P3,Q3,R3,P4,Q4,R4,P5,Q5,R5
N: Numero de la envolvente gama 1 a 5.
PI a 5: Cuenta de pasos
Ql a 5: Altura del paso
Rl a 5: Tiempo del paso
gama a 127
gama -128 a +127
gama a 255
El numero de envolvente es un parametro obligatorio. Ademas es
obligatoria una seccion completa por lo menos. Por ejemplo, puedes omitir
las secciones 4 y 5 y decidir solo las tres primeras secciones de la
envolvente).
6.12 La envolvente de tono y el comando ENT
La envolvente de tono tiene exactamente el mismo tipo de construccion
que la envolvente de volumen, solo que aqui' lo que se varia no es el
volumen sino el tono de sonido a generar; en otras palabras, lo que se
llama "vibrato", consistente en variar alternativamente entre dos tonos
cercanos. Despues de decidir la forma en cuando a los valores de tono
que quieres que tenga esa nota, esbozalos como antes en papel a escala
y divi'delo en secciones y pasos, como en el ejemplo:
peribdo
de tono
1 i cuenta 5
altura 1
lapso 1
cuenta 10
altura -1
lapso 1
seccion 3
cuenta 10
altura 1
lapso 1
seccion 4
cuenta 5
altura -1
lapso 1
tiempo
(1/100 segundos)
Figura 4: Ejemplo de envolvente de tono.
■Capftulo 6 Paginal 1
SONIDOS
La mayor diferencia entre las envolventes de volumen y las envolventes
de tono, es que estas ultimas no tienen ningun efecto sobre la duracion
de la nota; est'a duracion queda definida en el comando SOUND o en
el comando ENV. Por lo tanto, si la envolvente de tono dura menos que
la nota, a continuacion se genera el tono constante durante el tiempo
que resta de duracion de la nota. Sin embargo, si la duracion de la
envolvente de tono, sobrepasa en tiempo a la duracion de la especificada
para la nota, las ultimas secciones y pasos de la envolvente de tono no
se generan.
Para repetir continuamente una cierta envolvente de tono durante todo
el peribdo de tiempo especificado para la nota, usa un numero negativo
para identificar la envolvente. (Pero solo en el parametro del comando
ENT, y no en el parametro del comando SOUND).
Forma del comando ENT:
ENT S,T1.V1,W1,T2,V2,W2,T3,V3,W3,T4,V4,W4,T5,V5,W5
S: Numero de envolvente
Tl a 5: Cuenta de pasos
VI a 5: Altura del paso
Wl a 5: Tiempo del paso
gama 1 a 15 (negativo para repetir)
gama a 239
gama -128 a +127
gama a 255 (centesimas de segundo)
El numero de envolvente es obligatorio, y ademas completar cada una
de las secciones individuates que uses.
Cuando se define un <numero de envolvente>, todos los valores previamente
estipulados son derogados. Si se especifica una envolvente de cualquier
clase, sin ninguna seccion, se tomaran como parametros los correspondientes
a la envolvente con numero cero.
6.13 Otras funciones y comandos asociadas
SQ(x)
Siendo x el numero de canal, que es 1 para el canal A, 2 para el canal
B, y cuatro para el canal C. (Como corresponde a la notacion interna
binaria).
Como ya te mostramos en la tabla explicativa de los bits del parametro
estado de canal, solo te diremos que esta funcion entrega como resultado
un numero entero en la gama a 255, que tendras que analizar segun
su equivalente binario para poderlo interpretar. Lo unico que varia con
respecto al parametro del comando SOUND son los bits a 2, y el bit
7, pero repetimos todos para mayor claridad:
Bit 0, 1, 2 numero de espacios libres en el "chorro" examinado (de
a 4 en decimal).
Capftulo 6 Pagina 12-
SONIDOS
Bit 3 la nota inicial del chorro esta marcada con ACORDE con
canal A
Bit 4 la nota inicial del chorro esta marcada con ACORDE con
canal B
Bit 5 la nota inicial del chorro esta marcada con ACORDE con
canal C
Bit 6 la nota inicial del chorro esta marcado con RETENCION
Bit 7 el canal esta actuando en ese momento.
Los Bits 3 a 6 (ACORDES y RETENCION) los comentamos al tratar el
<estado de canal>. Ademas de la facilidad para examinar el estado de
un canal, puede emplearse para INHIBIR la la serial de interrupcion que
provoca la ejecucion del comando ON SQ GOSUB, descrito en el siguiente
parrafo.
ON SQ GOSUB
ON SQ(y) GOSUB numero de linea
Siendo'y'el numero de canal, que segun los bits del equivalente en binario,
sera 1, 2 6 4, para los canales A, B, C, respectivamente.
Esta instruccion solamente se ejecuta cuando ha habido una serial de
INTERRUPCION, provocada por estar vacio el canal mencionado cuando
no esta INHIBIDO por algun comando SQ o SOUND anterior; y al ejecutarse
obliga a un DESVIO hacia el numero de li'nea mencionado en la instruccion.
La subrutina a la que se desvia, debe terminar con la instruccion RETURN,
para que VUELVA como hace habitualmente. Todos los canales tienen
la misma prioridad en cuanto a la generacion de interrupciones, y cuando
hay un "vacio" en el canal mencionado en la instruccion, no solo se provoca
la ejecucion de la subrutina, sino que la ha INHIBIDO para generar otras
posibles interrupciones; por lo que dentro de la propia subrutina necesitaras
quitar la inhibicion e interrupciones, si es que las vas a necesitar de nuevo.
RELEASE
RELEASE z
Siendo z el numero del canal que se ve LIBERADO. Observa que aqui'
el numero de canal esta en la gama de 1 a 7 para poder "liberar" varios
canales con un solo comando.
Como se describio en el parametro estado de canal del comando SOUND,
es posible establecer en cualquier nota que se envia a un canal, una marca
de RETENCION. El comando RELEASE simplemente quita esas marcas.
El numero del canal tiene su significado de acuerdo con la composicion
del numero equivalente en binario, lo que nos permite "liberar" cualquier
combinacion de canales con un solo comando.
Bit 0: Canal A Bit 1: Canal B Bit 2: Canal C
— Capftulo 6 Pagina 13 —
JOYSTICKS E IMPRESORAS
7. Imprimiendo y jugando
El CPC*64 no necesita ningun acoplador adicional para operar con uno
o dos controladores de juego (joystick), y para usar una impresora
compatible con la norma Centronics.
Temas tratados en este capftulo:
*
*
*
"Joysticks"
Impresoras en paralelo
Acoplando
El modelo de mandos para juegos, llamados tambien palancas, AMSOFT
JY1 es un equipo adicional que seguro desearas adquirir si usas el
ordenador CPC464 con programas que incorporen esta posibilidad
interesante para movimientos y disparos dentro de un juego. El 3Y1
puede enchufarse en la parte trasera de tu ordenador, usando el enchufe
de 9 vias marcado USER PORTS (I/O). El ordenador Amstrad CPC464
puede usarse con dos "joysticks" simultaneamente, enchufando el segundo
de ellos en el correspondiente conector del primero.
No hay que hacer ninguna observacion especial sobre como conectarlos
al CPC464. Simplemente se inserta directamente la clavija del extremo
del cable del joystick en el enchufe de 9 pines, previsto en la parte
exterior del ordenador y marcado USER PORTS (I/O), que es el "portal"
para entradas y salidas hasta/desde el ordenador. Tambien puede acoplarse
un segundo joystick si es necesario para el juego, insertando su clavija
en el enchufe previsto en la base del primer joystick JY1. Las conexiones
de estas clavijas y enchufes se enumeran en el Apendice V al final de
este manual, junto con todos las otras funciones y conectores del
CANALIZADOR de entrada/salida.
Conector para un segundo joystick JY1
Joystick JY1
Capftulo 7 Pagina 1
JOYSTICKS E IMPRESORAS
7.1 Jugando con joysticks
Los programas incorporados en el ordenador CPC464 AMSTRAD, admite
uno y dos joysticks, que son tratados como si fueran parte del teclado,
y por tanto, puede examinarse el dato que estan enviando como si fueran
teclas; es decir, podemos usar el comando INKEY y la funcion INKEY$,
que guardan estfecha relacion con las INDAGACIONES de valores tecleados.
Nota que si existe un boton para disparar en tu joystick, es probable
que sea el que dentro de la terminologia AMSTRAD para el CPC46*f,
corresponde al GATILLO 2 (en ingles, "Fire 2", pero no hacen "fuego").
Se dispone de una funcion para examinar directamente el estado de cada
uno de los JOYSTICKS, y es JOY(O) para el primero, y JOY(l) para el
segundo. El valor resultante de la funcion tiene significacion al emplear
la notacion binaria, con la que indica el estado exacto de sus controles
en el momento de la ultima exploracion del teclado. Como se efectuan
50 "barridos" del teclado por segundo, el valor obtenido es virtualmente
el estado en ese mismo instante de la posicion del joystick (que en ingles
significa "baston de jugar").
Los valores CLAVE correspondientes a los joysticks, se muestran en la
tabla siguiente, siendo CLAVE el valor que hay que usar como argumento
en la funcion INKEY, mientras que ESPEJO es la tecla equivalente del
teclado.
Primer
Joystick
JOY(0)
CLAVE
Segundo
Joystick
JOY(i)
CLAVE
ESPEJO
Arriba
Bit
72
Arriba
Bit
t&
6
Abajo
Bit 1
73
Abajo
Bit 1
W
5
Izquierda
Bit 2
7H
Izquierda
Bit 2
50
R
Derecha
Bit 3
75
Derecha
Bit 3
51
T
Gatillo 2
Bit k
76
Gatillo 2
Bit it
52
G
Gatillo 1
Bit 5
77
Gatillo 1
Bit 5
53
F
Observa que cuando el CPC464 examina el estado del segundo joystick,
no puede decir si realmente corresponde al joystick o a las teclas
equivalentes que figuran en la columna ESPEJO. Pero en la practica no
es probable que haya conf licto de interpretacion, y asi' se puede usar
el teclado como segundo joystick (cuando todavia no lo has adquirido).
Cuando se usa el AMSOFT JY1, el segundo es identico al primero, y
se conecta en el enchufe de la base del considerado primero. No se
requiere cableado especial para poder usar este segundo joystick.
El conector en la parte trasera del ordenador que sirve de PORTAL DE
ENTRADA/SALIDA, afecta joysticks standard para otros ordenadores
personales, aunque no suele permitir la utilizacion de un segundo joystick
a no ser que se emplee un adaptador especial. Sin embargo, NO intentes
usar uno de estos como segundo joystick y enchufarlo en el conector
del AMSOFT 3Y1.
Capftulo 7 Pagina 2
JOYSTICKS E IMPRESORAS
Los escritores de programas pueden considerar la posibilidad de permitir
al comienzo de sus programas que el usuario elija operacion con los
joysticks o con las teclas de cursor, pudiendo emplear en lugar de la
tecla COPY o de cualquier otra, el gatillo de disparo.
7.2 Acoplando la impresora
El CPC464 AMSTRAD admite utilizar una impresora que responda a la
norma de interconexion "Centronics" standard en la industria.
El cable impresora se construye simplemente por conexiones directas
y una a una entre el conector marcado PRINTER en el ordenador y el
conector de la impresora. Observa que en la tarjeta de circuito impreso
del ordenador nemos dejado dos 'pistas' menos que en el conector de
la impresora; eso te permite usar conectores standard para tarjetas de
circuito impreso directamente.
Los detalles exactos de la interconexion se muestran en el Apendice V.
El cable debera construirse de modo que el pin 1 del ordenador conecte
con el pin 1 de la impresora, el pin 19 del ordenador con el pin 19 de
la impresora, etc. Y con los pines 18 y 36 de la impresora sin conectar
a ningun pin del ordenador.
En particular, la fila inferior de pistas en el ordenador esta numerada^
a partir de 19 (y no como pudieras esperar, a partir de 18 dado que solo
hay 17 pistas en la fila superior); con el fin de que cada cablecillo que
se use se conecte exactamente en la pista con el mismo numero tanto
por la parte del ordenador como por la parte de la impresora.
El ordenador usa la serial BUSY en el pin 1 1 para indicar si esta
OCUPADO, y asi' poderse sincronizar con la impresora, para lo que
esperara cuando la impresora no esta seleccionada o esta OFF LINE.
No se requiere ningun comando de preparacion por parte del usuario,
y la salida se dirige hacia la impresora en cuanto especifiques en cualquier
comando de salida el CAUCE numero 8, como por ejemplo:
LIST #8
que hara que el programa BASIC que haya en memoria sea listado,
siempre y cuando sea de la clase admitida para listado (no este protegido).
Dentro de los programa, puedes usar instrucciones para que expongan
datos por impresora usando el mismo numero de cauce; por ejemplo:
PRINT #8, "Este es el curso para la impresora"
Capftulo 7 Pagina 3
JOYSTICKS E IMPRESORAS
Muchas impresoras automaticamente pasan al renglon siguiente cuando
el extremo de la lfnea a imprimir sobrepasa el margen permitido, asf
que comprueba el manual de tu impresora. Pero observa que el BASIC
AMSTRAD puede hacer esa misma funcion, si le especificas la ANCHURA
de la li'nea a imprimir mediante el comando WIDTH. El valor prescrito
cuando omites explicitamente otro, para la anchura de las impresoras
es de 132 columnas, pero puedes fijarlo al valor que precises, por ejemplo
con WIDTH 80.
Cuando se le da como valor de anchura el de 255, el BASIC AMSTRAD
no se preocupara de si la li'nea sobrepasa el margen derecho y delegara
esta funcion completamente a la propia impresora. BASIC mantiene
internamente un contador con la posicion que en cada momento ocupa
el cabezal de impresion, y puedes examinar el valor de ese contador,
y por tanto de la POSICION del cabezal de la impresora mediante el
comando POS, como por ejemplo:
IF P0S< #8) > 50 THEN GOTO 100
El CPC^64 envia una marca de AVANCE DE LINEA, que corresponde
en ASCII a CHR$(10) y una marca de RETORNO DE CARRO, que
corresponde a CHR$(13), al final de cada una de las li'neas que quiere
imprimir. La impresora habitualmente dispone de un conmutador con
el que puedes elegir la entrada de datos apropiada, y sera obvio
inmediatamente cuales son las exigencias prescritas como standard y
para omisiones en cuanto intentes imprimir la primera vez.
7.3 Imprimiendo los graficos
El manual suministrado con tu impresora, especificara los CODIGOS DE
CONTROL, que generalmente pueden ser enviados por el BASIC, al darle
el comando:
PRINT CHR*(n)
Algunas de las impresoras tienen caracteres graficos similares a muchos
de los que posee AMSTRAD y que estan enumerados en el Apendice III,
pero es muy poco probable que todos los numeros asignados a los
caracteres correspondan de manera exacta, de forma que tendras que
preparar tu propia tabla de conversion de acuerdo con la impresora en
cuestion.
Aunque la interconexion con la impresora esta planteada para impresoras
matriciales de bajo coste, admite por supuesto impresoras de margarita
cuando responden a la norma de acoplamiento adecuada; y tambien
admitira trazadoras de graficos e impresoras por chorro de tinta con
varios colores de tinta. La clave de todas estas posibilidades de
compatibilidad radica en que el CPC464 utiliza la norma standard para
transferencia de datos en paralelo.
Capftulo 7 Pagina 4
BASIC: Palabras Clave
8. BASIC AMSTRAD.
Guia de referencia
Una lista ordenada con todas las palabras clave del BASIC AMSTRAD
e ilustrada por ejemplos, presentando la forma precisa de utilizacion
y las palabras clave asociadas.
Temas tratados en este capftulo:
* La notacion empleada
* Caracteres especiales y su significado
* Todas las palabras clave (reservadas) en el BASIC
AMSTRAD
Este capftulo es un resumen conciso de las funciones que puede llevar
a cabo el interpretador BASIC incorporado en el CPC464. El surtido de
posibilidades disponibles, representa una implementacion standard en la
industria del lenguaje BASIC, potentemente ampliada para estar acorde
con los avanzados circuitos electronicos del CPC*64.
8.1 Notacion
Caracteres Especiales
& o &H Prefijo para constantes hexadecimales
&X Prefijo para constantes binarias
: Separador de los comandos incluidos en una misma li'nea.
// Prefijo de numero de CAUCE (por donde fluye la informacion).
Literales
Las constantes literales pueden tener de a 255 caracteres de longitud
y puede intervenir en expresiones literales, uniendose mediante el operador
de CONCATENACION o EMPALME, simbolizada por el signo +, siempre
que el resultado de la expresion sea otro lftero con menos de 255
caracteres. (Son consideradas como 'sartas' de caracteres, ocupando una
posicion por caracter incluyendo el espacio en bianco).
Las constantes numericas pueden ser enteras o reales. Las enteras nan
de estar en la gama -32768 a +32767; mientras que las reales tienen poco
mas de 9 digitos de precision, y han de estar en la gama -1.7E+38 a
+ 1.7E+38, con el valor absoluto mas pequeno para representar la de
aproximadamente 2.9E-39.
Los nombres de las variables llevan como ultimo caracter del nombre
un simbolo designador de la clase a que pertenece: % numerales enteros,
! numerales reales, $ literales.
Capftulo 8 Pagina 1 —
BASIC: Palabras Clave
L
Una expresion es cualquier combinacion de constantes variables y
operadores que puede ser evaluada y ei resultado de la evaluacion asignado
a una variable de la clase pertinente. Habra expresiones numerales y
expresiones literales.
Si el resultado de la expresion no cae dentro de la gama permitida, o
bien el argumento empleado en una funcion no corresponde con los valores
aceptados, o bien el valor dado a un parametro de un comando BASIC
no es valido, sera rechazado mostrando el correspondiente mensaje de
error.
Los CAUCES internos para la transferencia de informacion entre los
circuitos centrales y perifericos del ordenador, estan IDENTIFICADOS
mediante lo que llamamos numero del cauce. Hay numeros de cauce
prescritos para el monitor, la impresora, la ductora de cassette, y el
teclado.
PALABRAS RESERVADAS
En esta seccion enumeramos en orden alfabetico las palabras reservadas
o palabras clave del lenguaje BASIC AMSTRAD, presentandolas en la
siguiente forma:
PALABRA CLAVE
Sintaxis/Funcion
Ejemplo
Descripcion
PALABRAS CLAVE asociadas
IMPORTANTE:
Las palabras clave pueden representar:
ACCIONES: que con ciertos parametros nan de ser llevadas a cabo
por el ordenador, y que pueden darse en forma de
COMANDOS o de INSTRUCCIONES (precediendolas de
un numero de li'nea).
FUNCIONES: con los argumentos correspondientes y que pueden ser
usadas en comando, instrucciones y expresiones.
Parentesis
Las parejas de ( ) se requieren como parte de las acciones o de las
f unciones. En las descripciones y en el texto usamos otros tipos de
parentesis, que no deben ser nunca tecleados como parte de la instruccion.
Son: los corchetes cuadrados [ ] para datos o parametros opcionales.
Los corchetes angulados < > para reflejar conceptos mencionados en el
texto.
Capftulo 8 Pagina 2
BASIC: Palabras Clave
Comillas
Unicamente las comillas " " forman parte intrinseca del lenguaje BASIC,
y se usan para delimitar exactamente las constantes literales. Aunque
no es aconsejable, en ciertas ocasiones puede prescindirse de las comillas
de cierre.
Los apostrofes ' ' se usan para resaltar o destacar ciertos aspectos en
las descripciones, pero no apareceran en ninguna parte para evitar
confusiones, y solo los usaremos incluyendolos como cualquier otro signo
dentro de una <expresion literal>.
Tecleando
BASIC convierte todas las palabras clave impuestas en el teclado usando
las 'letras minusculas' a las correspondientes 'letras mayusculas' cuando
se lista el programa. Los ejemplos que aqui' mostramos son en mayusculas,
dado que asf aparecen al listar el programa; pero si los tecleas usando
minusculas, te sera mas facil detectar los errores de tipografia mas
rapidamente, dado que la palabra mal tecleada, continuara apareciendo
en minusculas al ser listado el programa.
Las palabras CLAVE han de estar delimitadas por separadores, dado que
en el BASIC AMSTRAD esta permitido incrustar palabras clave en los
nombres de las variables y en las constantes literales, y por tanto,
LIST CODE es aceptable como nombre de una variable.
Capftulo 8 Pagina 3
BASIC: Palabras Clave
ABS
ABS(<expresion mneral))
PRINT fiBS(-67. 98)
67.98
FUNCION: El resultado entregado es el valor absoluto del argumento
(lo que significa que si el numero es negativo lo convierte en positivo).
CLAVES asociadas: SGN
AFTER
AFTER (expresion entera) t, {expresion altera)] GOSUB irmen de linea).
AFTER 200,2 BOSUB 320
ACCION: Se desvia a la subrutina despues de que ha transcurrido un periodo
de tiempo dado. La primera expresion entera es el parametro que fija
el periodo de demora en unidades de 0,02 segundos; y la segunda expresion
entera -en la gama a 3- es el parametro que indica cual de los cuatro
temporizadores (cronometros) disponibles es el que se emplea en esta
accion.
CLAVES asociadas: EVERY, REMAIN
ASC
ASC ({expresion literal))
PRINT ftSCC'X")
88
FUNCION: Obtiene como resultado el codigo ASCII correspondiente al
primer caracter de un litero o expresion literal (siempre y cuando
corresponda un caracter ASCII).
CLAVE asociada: CHR$
Capftulo 8 Pagina 4
BASIC: Palabras Clave-
ATN
RTN(<expresion nueeral))
PRINT OTNU)
0.785398163
FUNCION: Calcula el arco que tiene por tangente el valor especificado
como argumento. (Convierte la expresion que figura como argumento
previamente a un numero real en radianes, dentro de la gama -PI/2 a
+PI/2).
CLAVES asociadas: SIN, COS, TAN, DEG, RAD
AUTO
AUTO [(nutero de linea) IE, salto)]
AUTO 100,50
ACCION: Se usa exclusivamente como COMANDO para generar
automaticamente numeros de linea del programa. El parametro numero
de linea establece el numero a partir del que debe comenzar, y el
parametro salto establece el que hay entre dos numeros de linea
consecutivos. Los valores prescritos para omision son 10 para el numero
de linea y 10 para el salto.
Cuando un numero de linea del programa existente en memoria va a ser
sobre-escrito como consecuencia de esta accion, el BASIC inserta un
asterisco (*) como aviso.
BIN$
BIN! (<expresion enter* positiva) [, (expresion enters)])
PRINT BIN* (64, 8)
01000000
FUNCION: El resultado de esta funcion es una 'sarta' de simbolos binarios
1 y 0, representando el valor equivalente al del argumento <expresion
entera positiva>, y formado por tantos 'bitos' como indique el segundo
argumento de la funcion.
CLAVES asociadas: HEX$, STR$
— — — ^—— ——-—-—— ^—— — — — — — — — — — — . Capftulo 8 Pagina 5 -
BASIC: Palabras Clave ■
BORDER
BORDER <color)[, (color)]
BORDER 3,2
ACCION: Cambia el color del 'borde' de la pantalla. Cuando se especifican
los dos argumentos para el color, el borde alterna entre los dos colores
con una 'cadencia' estipulable mediante el comando SPEED INK. La gama
de colores para el borde es de a 26.
CLAVES asociadas: SPEED INK
CALL
CflLL (expresion direccionalH, (lista de): <paraaetros)]
CALL &BD19
ACCION: Permite que se 'cite' una SUBRUTINA desarrollada externa
e independientemente de BASIC. Usala con precaucion, porque no es una
accion con la que el inexperto pueda experimentar. El ejemplo es
relativamente inofensivo, dado que lo que hace es obligarle a esperar
al siguiente 'cuadro' de la imagen en el monitor, lo que es especialmente
aprovechable para sincronizar los movimientos de figuras cuando se trabaja
con programas de 'animacion'.
CLAVE asociada: UNT
L
CAT
CAT
COT
ACCION: El BASIC comienza a examinar la cinta del cassette y a mostrar
los nombres de los ficheros que va encontrando. Esta accion no afecta
al programa existente en memoria, y por tanto, puede usarse para verificar
que un programa ha sido GUARDADO antes de alterar el programa. El
BASIC te pide que pongas en marcha el cassette, y el mensaje con que
anuncia el contenido de la cinta es:
Capitulo 8 Pagina 6 ■
BASIC: Palabras Clave
FILEMANE BlockNumber
Flag OK
con el numero de bloque pertinente y el 'banderfh' que indica el modo
en que se ha grabado el fichero. De acuerdo con:
$ un fichero con programa en BASIC
% un fichero en BASIC 'protegido'
* un fichero con 'texto' de caracteres ASCII
& un fichero en notacion binaria
Si el fichero no fue grabado por BASIC, pueden aparecer otros caracteres.
CLAVES asociadas: LOAD, RUN, SAVE.
CHAIN
CHAIN MERGE
CHAIN <no*bre del fichero) [, texpresion de nueeros de line*)]
CHAIN MERGE <notbre del fichero) [, texpresion de nuteros de line*)]
[.DELETE <ga*a de nueeros de line*)]
CHAIN "TEST", 350
ACCION: El comando CHAIN permite el ENGARCE de programas
'cargando' en la memoria y desde la cinta el programa mencionado en
el comando; sustituyendo al programa existente, pero conservando los
valores de las variables que hubiera en memoria. La expresion de numeros
de linea le indica la linea del nuevo programa a partir de la que debe
empezar la subsecuente ejecucion del programa.
Con la variante CHAIN MERGE, ademas de cargar el programa, lo
CONGREGA con el programa existente en memoria y manteniendo los
valores y variables que haya.
Si no se menciona ningun <nombre de fichero> , el BASIC extrae de la
cinta el primer fichero valido que encuentre. Cuando el primer caracter
anterior del nombre del fichero es el signo de admiracion (!) el BASIC
quita este signo del nombre del fichero para buscar en cinta, y- suprime
los mensajes que habitualmente genera durante el trasvase de cinta a
memoria.
Aunque tanto CHAIN como CHAIN MERGE retienen todas las variables
presentes en memoria, se descartan las funciones definidas por el usuario
asi' como los f icheros abiertos. Las condiciones ON ERROR se restauran,
las series de datos se RESTORE a la primera DATA, y se olvidan las
posibles DEFINT, DEFREAL, DEFSTR que hubiera en el programa anterior,
y todos los bucles FOR y WHILE y los desvios a subrutinas pendientes
se cancelan. Los ficheros protegidos no admiten la variante MERGE.
■Capftulo 8 Pagina 7
•}
BASIC: Palabras Clave
La opcion DELETE permite suprimir antes de la carga, la gama de numero
de li'neas especificada en el parametro.
CLAVES asociadas: LOAD, MERGE
CHR$
CHR$(<expresion entera))
PRINT CHR*(100)
FUNCION: Entrega como resultado el caracter equivalente al argumento
numeral de la funcion, (usando el repertorio de caracteres AMSTRAD
CPC464 resenado en el Apendice III).
CLAVES asociadas: ASC, LEFT$, RIGHT$, MID$, STR$
CINT
CINT (<expresion numeral >)
10 n=57B. 76543
20 PRINT CINT(n)
RUN
579
FUNCION: El resultado es la parte entera redondeada del argumento,
que debe estar en la gama -32768 a +32767.
CLAVES asociadas: CREAL, INT, FIX, ROUND, UNT
CLEAR
CLEAR
CLEAR
ACCION: Coloca a ceros o a blancos todas las variables numericas y
literales que haya en memoria.
■Capftulo 8 Pagina 8
BASIC: Palabras Clave
CLG
CL6[<tinta invisible)]
CLG
ACCION: Limpia la pantalla destinada a graficos.
CLAVES asociadas: CLS, ORIGIN
CLOSEIN
CLOSE IN
CLOSEIN
ACCION: Cierra el fichero en cassette definido como fichero de ENTRADA
Los comandos NEW y CHAIN MERGE tambien abandonan cualquier fichero
que haya abierto.
CLAVES asociadas: OPENIN, CLOSEOUT
CLOSEOUT
CLOSEOUT
CLOSEOUT
ACCION: Cierra el fichero en cassette definido como fichero de salida.
CLAVES asociadas: OPENOUT, CLOSEIN
CLS
CLSUHnuaeral del cauce)]
CLS
ACCION: Limpia la 'vineta' definida en la pantalla a traves del cauce
mencionado.
■ Capftulo 8 Pagina 9 —
BASIC: Palabras Clave
CONT
CONT
CONT
ACCION: Hace que SIGA la ejecucion del programa despues de *Break*,
STOP, o END, siempre que el programa no se haya alterado posteriormente.
Solo se admite como COMANDO.
COS
COS ((expresion numeral))
?C0S(34)
-0. 848570274
degs?cos(34)
0. 829037573
FUNCION: Calcula el COSENO del valor dado como argumento. El
argurriento de la funcion se considera dado en 'radianes' a no ser que
expli'cita y previamente se haya estipulado que sean 'grados', mediante
el comando DEC
CLAVES asociadas: IN, TAN, ATN, DEC, RAD
Capftulo 8 Pagina 10-
BASIC: Palabras Clave-
CREAL
CREflLKexpresion numeral))
5 DEFINT n
10 n=75. 765
20 d=n/34. 6
30 PRINT d
40 PRINT CLEAR <n)
50 PRINT n. /55. 4
run
2. 19653179
76
1.37184116
Ready
FUNCION: Convierte el argumento en un numero real (en oposicion a
numeros enteros).
CLAVE asociada: CINT
DATA
DATA (lists de):<constante>
10 REM Lista de correctores
20 DIM Nombres*(10)
30 DIM ftpellidos»U0>
40 FOR n=l to (10)
50 READ Nombres*(n)
60 READ flpellidos»(n)
65 PRINT Nombres*(n> ;" "fipellidos*(n)
70 DfiTR Julio, Sierra Frade, Jul io, Legido Gonzalez, Leopoldo,
Porras Larios, Enrique, Diaz Correa, Lourdes, Legido Gonzalez,
Yolanda, Bellette Jimenez, figust in, Rodriguez Guaza.Juan,
Martinez del Rio, Miguel ftngel, Ortega Plana, Yolanda, Cabel lo
Jaime
90 NEXT
ACCION: Es una instruccion no ejecutable, que permite definir en el
programa una serie de datos en la forma de constantes. Es una de las
posibilidades mas ampliamente usada con BASIC, ya que permite agrupar
ciertos datos en series encabezadas por la palabra reservada DATA que
son 'secuencialmente' empleados en el programa, cada vez que se
'apuntan' como valores de variables, mediante la instruccion READ. Las
constantes de la instruccion DATA,deben ser coherentes con las variables
de la instruccion READ correspondiente.
CLAVES asociadas: READ, RESTORE
■Capftulo 8 Pagina 11-
BASIC: Palabras Clave ■
DEF FN
DEF FN<nMbre>[(<paraaetros fomales))]={general expresion)
10 DEF FNintereses (capital )=1. 14*capital
20 INPUT "Cual es el capital resultante" jcapital
30 PRINT "El capital prestado mas los intereses
anuales" ;FNinteres<capital )
ACCION: BASIC permite que se definan y USEN funciones definidas por
el usuario con varios argumentos pero un solo resultado literal o numeral.
Esta instruction constituye la definicion de la function, que luego puede
ser utilizada en la misma manera que las funciones 'intrinsecas' del BASIC
(tales como COS, SIN, etc.).
Para obtener el resultado de la funcion definida, basta nombrarla en el
programa sustituyendo los argumentos 'formales' por los argumentos
'actuales' en cada momento. La funcion debe definirse antes de que pueda
ser citada en el programa.
DEFINT
DEFSTR
DEFREAL
DEFtype (gouts) de letras)
DEFINT I-N
DEFSTR fl,W-Z
DEF REAL
ACCION: Permite definir la clase de variables segun el primer caracter
anterior de su nombre; y corresponde a variables enteras, literales y
reales sucesivamente. Siempre el nombre de la variable debe comenzar
con una letra, pero puede ser en minuscula o en mayuscula.
CLAVES asociadas: LOAD, RUN, CHAIN, NEW, CLEAR
DEG
DEG
DEG
Capitulo 8 Pagina 12-
BASIC: Palabras Clave
ACCION: Fija para los argumentos de las funciones 'trigonometricas'
la medida en grados. La condicion prescrita para omisiones y a la puesta
en marcha es la medida en 'radianes' para los argumentos de las funciones
trigonometricas. Este comando cambia esa prescripcion hasta que sea
restaurada mediante los comandos CLEAR, RAD o se cargue un nuevo
programa desde el cassette.
CLAVES asociadas: RAD
DELETE
DELETE <gaaa de •uaeros de linea)
DELETE 100-200
ACCION: Los numeros de linea comprendidos en la gama mencionada
se SUPRIMEN del programa existente en memoria. Si encuentra un error
durante esta accion, se perderan las lineas ya suprimidas, usala con
cuidado y comprueba la gama de numeros a suprimir antes de terminar
el comando.
CLAVES asociadas: NEW, CHAIN
DI
DI
10 CLS
20 TOG
30 EVERY 10 GOSUB 100
40 X1=RND*320:X2=RND*320
50 Y=200+RND*200
60 FOR X=320-X1 TO 320+X2 STEP 2
70 DisPLOT 320,0, l: MOVE X-2,
Y:PRIIMT " ";:M0VE X,Y:PRIIMT "#";:EI
80 NEXT
90 GOTO 40
100 MOVE 320,0
110 DROW X+8, Y-16,
120 RETURN
ACCION: Permite INHIBIR las senales de interrupcion generadas en los
diversos circuitos de la maquina, exceptuando la interrupcion de programa
♦Break*; y hasta que vuelvan a ser expli'citamente 'facultadas 1 , mediante
el comando EI o lo sean implicitamente al concluir la subrutina incitada
por la interrupcion, que debe terminar con el comando RETURN.
— — Capftulo 8 Pagirta 13~
BASIC: Palabras Clave
Se emplea cuando un programa desea continuar todas sus operaciones
sin verse materialmente "interrumpido" por senales enviadas desde otros
circuitos, como por ejemplo cuando dentro del programa hay dos
instrucciones 'compitiendo' para apoderarse de una impresora, canal de
sonido, etc. En el ejemplo, el programa principal y el parrafo que comienza
en la instruccion 100 (que es puesto en marcha de acuerdo con la
instruccion 30) estan compitiendo por la pantalla de graficos.
CLAVE asociada: EI
DIM
DIN (lista de) : {variables subscritas)
10 CLS: PRINT "Introduzca 5 nombres. ..'.": PRINT
20 DIM B*(5)
30 FOR N=l TO 5
40 PRINT "No(nbre"N"por favor";
50 INPUT B*(N)
60 NEXT
70 FOR N=l TO 5
80 PRINT "Muy inteligente por tu parte" ;B*(N) ;
"haber comprado un CPC464"
90 NEXT
ACCION: Hace que se OCUPE el espacio destinado a tablas, de acuerdo
con el tamano de la tabla especificada mediante los 'sufijos' que
seleccionan los elementos de la tabla. BASIC exige que las tablas (ringlas)
sean declaradas antes de poder usarlas en el programa, pero admite la
carencia de definicion previa cuando no hay mas de 10 elementos en
la tabla.
Para seleccionar un elemento de la tabla, ha de usarse el mismo NOMBRE
que se ha dado al establecer las dimensiones, y usar el sufijo o sufijos
correspondientes a ese elemento. El tamano de las tablas solo esta limitado
por la memoria disponible.
CLAVES asociadas: ERASE
Capftulo 8 Pagina 14-
BASIC: Palabras Clave-
DRAW
DMU (x coordenadas),{y coordenadas) [, (tinta usada)]
DRfiW 200,200, 13
ACCION: 'Dibuja' un segmento en la pantalla a partir de la posicion
corriente del cursor de graficos hasta la posicion senalada por los
parametros coordenada x, y coordenada y. El parametro 'tinta' determina
la usada al dibujar el segmento.
Hay muchos ejemplos en el capitulo 5.
CLAVES asociadas: DRAW, PLOT, PLOTR,MOVE, MOVER, TEST, TESTR,
XPOS, YPOS, ORIGIN
DRAWR
DRftffi (increaento de x >, (increaento de y >t, (tinta usada)]
DRflWR 200,200, 13
ACCION: 'Dibuja' un segmento a partir de la posicion corriente del cursor
de graficos y hasta la posicion dada por lo parametros coordenada x y
coordenada y, en valores relativos a la posicion actual del cursor.
CLAVES asociadas: DRAW, PLOT, PLOTR, MOVE, MOVER, TEST, TESTR,
XPOS, YPOS, ORIGIN
EDIT
EDIT (nuaero de linea)
EDIT 110
ACCION: Coloca la lfnea de programa mencionada en el parametro, en
el modo adecuado para que pueda ser EDITADA (revisada y corregida).
Vease seccion 1.4.
CLAVES asociadas: LIST
-Capitulo 8 Pagina 15-
BASIC: Palabras Clave
EI
EI
EI
ACCION: 'Faculta' las senales de interrupcion generadas por los circuitos
internos y que estan 'inhibidas' por un comando DI anterior.
CLAVES asociadas: DI
END
END
END
ACCION: 'Termina' el programa. En el BASIC AMSTRAD esta explicito
un comando de FIN cuando llega a la ultima linea de programa. Con el
comando END se cierran todos los ficheros en cassette y se vuelve al
modo directo de ingreso de comandos (los 'chorros de notas' pendientes
de ser emitidos, lo haran hasta que queden vacios).
CLAVES asociadas: STOP
ENT
EOT (nuaero de envoltura) £, (secciones de envoltura)]
10 ENT 1, 100,2,20
20 SOUND 1,100,1000,4,0,1
ACCION: Es posible definir la envolvente de tono correspondiente a una
'nota musical' generada con el comando SOUND. La envolvente de tono
define las variaciones de frecuencia que han de tener lugar a lo largo
de la duracion de la nota. Vease el capitulo 6 y el Apendice VII para
una descripcion completa.
El parametro <numero de envolvente> ha de ser una expresion numeral
entera cuyo valor resultante debe estar en la gama 1 a 15, e identifica
esa envolvente de tono. Si se usa un numero negativo, se repetira esa
envolvente de tono hasta que concluya el sonido generado.
Capitulo 8 Pagina 16-
BASIC: Palabras Clave ■
Se pueden dar hasta cinco parametros denominados <secciones> y
constituidos a su vez por otra serie de tres parametros denominados:
<cuenta de pasos>, <altura del paso>, <tiempo del paso>,
o bien por series de dos parametros, denominados: <periodo de tono> ,
<tiempo de paso>.
La primera de las variantes especifica un cambio RELATIVO en relacion
con el tono usado en el paso anterior. La segunda especifica un tono
en valor absoluto para todo el paso.
Los parametros indican:
cuenta de pasos da el numero de pasos en esa seccion, y debe ser
un numeral entero en la gama a 239.
altura del paso da el incremento o decremento sobre el tono del paso
anterior, y es una expresion entera dentro de la gama -128 a +127.
tiempo del paso indica la duracion del paso en centesimas de segundo,
y debe ser una expresion entera en la gama a 255 (considerando
el igual que el 256).
perfodo de tono da el nuevo valor para el periodo (relacionado con
la inversa de la frecuencia) del tono, y ha de estar en la gama a 4095
En el comando SOUND se hace que se genere una nota musical con un
determinado tono inicial, y luego se pueden especificar 1 de 15 envolventes
de tono para vivificar dicha nota. Si no se especifica ninguna envolvente,
o el numero que se menciona en el comando no corresponde a ningun
identificativo de envolvente, el tono permanecera constante a lo largo
de la duracion de la nota. La envolvente de tono no tiene ningun efecto
sobre la duracion del sonido generado. Si quedan pasos de la envolvente
de tono cuando concluye el sonido, simplemente son despreciados.
Las envolventes de tono identificadas con numeros negativos, indica que
seran repetidas incesantemente hasta que concluya el sonido pertinente.
Las parametros de las envolventes de tono, se evaluan cuando se ejecuta
el comando y se conservan los resultados para uso posterior, cuando se
cita esa envolvente. Pero por definir envolventes de tono no se provoca
que se re-ejecute el comando de sonido correspondiente. Cada vez que
se declara una envolvente de tono, los valores concernientes a la envolvente
que posee el mismo numero identificativo, son abandonadas.
Cambiando una envolvente mientras un sonido generado la esta usando,
(o esta pendiente de usarla), pero ya ha sido incluida en el 'chorro' de
notas a emitir por altavoz, los efectos no estan determinados (y puede
que sean interesantes).
Especificando una envolvente con un numero identificativo pero sin ninguna
seccion, cancela los valores corrientes para esa envolvente. Cualquier
uso posterior de la envolvente sera desechado y se utilizaran los parametros
prescritos para omisiones.
Capftulo 8 Pagina 17 —
CLAVES asociadas: ENV, SOUND
ENV
ENV (nuaero de awoltura) [, {secciones de envoltura)]
10 ENV 1, 100,2,20
20 SOUND 1,100,1000,4,1
BASIC: Palabras Clave
L
ACCION: Cuando se genera un sonido, es posible variar su volumen a
lo largo de la duracion del sonido, definiendo una envolvente de volumen.
Se usa el comando ENV con una serie de tres parametros, denominados:
<cuenta de pasos>, <altura de paso>, <tiempo del paso>
y define como vari'a el volumen en los sucesivos pasos. La cuenta de
pasos debe ser una expresion entera de a 127; la altura del paso una
expresion entera en la gama -128 a +127, y el tiempo del paso se medira
en unidades de centesimas de segundo, y sera una expresion entera dentro
de la gama 1 a 256.
El <numero de envolvente> es el parametro 'identificador' de dicha
envolvente y ha de ser un numeral entero dentro de la gama 1 a 15.
Se puede usar una serie de cinco parametros denominados secciones de
envolvente, y a su vez, cada uno de ellos puede ser una serie de tres
parametros, denominados cuenta de pasos, altura del paso, tiempo del
paso, o bien una serie de dos parametros denominados:
envolvente prescrita, perfodo de envolvente.
La primera de las variantes, especifica una seccion de envolvente cuyos
parametros estan controlados PROGRAMALMENTE, significando lo
siguiente:
cuenta de pasos establece el numero de pasos de que consta la seccion
y ha de ser una expresion numeral entera en la gama a 127.
altura del paso da el incremento o decremento de la amplitud del
paso en relacion con la amplitud del paso anterior, y debe ser un
valor entero en la gama -128 a +127.
(Si la cuenta de pasos es cero, el valor estipulado para la amplitud
corresponde con el valor con que haya terminado la seccion de
envolvente anterior, o con el valor de arranque resenado en el comando
SOUND).
tiempo de paso especifica la duracion del paso en centesimas de
segundo, y debe ser una expresion numeral entera dentro de la gama
a 255 (siendo el considerado como 256).
Capftulo 8 Pagina 1 8
BASIC: Palabras Clave
La segunda variante especifica una seccion de envolvente que va a ser
ejecutada bajo control CIRCUITAL del equipo, siendo:
envolvente prescrita el valor que se aloja en el 'registro de formas
de envolvente' (el registro 15 en notacion octal).
peribdo de envolvente es el valor que se aloja en el 'registro de
peri'odo de envolvente' (registros 13 y 14, en notacion octal).
Los valores de las envolventes prescritas, no tienen un tiempo de paso
asociado, por lo que se ejecuta inmeditamente la siguiente seccion de
la envolvente. Es aconsejable que en la siguiente seccion haya una pausa
de la duracion adecuada (y si no hubiera siguiente seccion, se efectua
una pausa de dos segundos).
El comando SOUND estipula el volumen inicial de la NOTA y como
parametro se puede especificar 1 de 15 envolventes de volumen. Si no
se especifica ninguna, o una que no haya sido previamente definida e
identificada, el volumen permanecera constante a lo largo de la duracion
del sonido.
Estipulando en el parametro de altura del paso un 0, con una cuenta de
pasos que sea distinto de 0, se consigue que el volumen permanezca
constante e igual al ultimo valor estipulado, durante toda la duracion
del paso.
Los parametros de la envolvente de volumen se evaluan cuando se ejecuta
el comando, y se conservan los resultados para uso posterior, pero usar
una envolvente i de volumen no implica que sea re-ejecutado el comando.
Cada vez que se estipula una envolvente de volumen determinada, se
pierden los valores previos. Cambiando una envolvente mientras algun
sonido la esta usando, o cuando hay una nota pendiente de ser emitida,
producira efectos indeterminados (pero posiblemente interesantes).
Especificando una envolvente sin secciones, cancela cualquiera de las
estipulaciones previas. Cualquier uso posterior de la envolvente sera
ignorado, y los parametros prescritos para omisiones, usados en su lugar.
CLAVES asociadas: ENT, SOUND
Capftulo 8 Pagina 19—'
BASIC: Palabras Clave
EOF
EOF
PRINT EOF
-1
FUNCION: Examina si el cabezal lector del cassette ha alcanzado el
Final del FIchero, cuando lo ha hecho, el resultado es -1 (cierto), y en
caso contrario (falso).
CLAVES asociadas: OPENIN
ERASE
ERASE (lista de;<noabre de variable))
ERASE A, B*
ACCION: Cuando ya no se requiere usar en el programa una TABLA
(ringla), puede conseguirse espacio LIBRE en la memoria, con el comando
ERASE, para disponer de mayor espacio en memoria.
CLAVE asociada: DIM
ERR
ERL
ERR
ERL
10 CLS
20 ON ERROR GOTO 1000
30 DATA LOURDES,YOLANDA,LETICIA,CONSUELO, ANTONIA
40 READ A*
50 PRINT A*
60 GOTO 40
70 REM que empieza la deteccion de errores
1000 IF ERR=4 THEN PRINT "No tengo datos que copiar"
1010 IF ERL<70 AND ERL>20 THEN PRINT
" en las lineas 30-60"
1020 END
* — Capftulo 8 Pagina 20
BASIC: Palabras Clave
FUNCIONES: Estas funciones son autenticas variables (y no es preciso
darles ningun argumento), y sus valores corresponden al 'numero de error'
y 'numero de li'nea' donde se detecto el error durante la ejecucion del
programa. Consulta la lista de mensajes de error en el Apendice VIII.
CLAVES asociadas: ON ERROR, ERROR
ERROR
ERROR {expresion entera)
ERROR 17
COMANDO: Inicia la accion de error con un numero de error dado. El
error puede ser uno ya usado y reconocido por BASIC (Apendice VIII)
en cuyo caso la accion adoptada es la misma que se adoptaria si tal error
hubiera sido detectado por BASIC. Los numeros de error superiores a
aquellos reconocidos por BASIC pueden ser usados por el programa para
sefialar sus propios errores.
CLAVES asociadas: ON ERROR, ERR, ERL
EVERY
EVERY (expresion entera) [, (expresion entera)] BOSUB (nuaero de linea)
EVERY 500,2 GOSUB 50
ACCION: El CPC464 mantiene un reloj para medida del tiempo, que puede
usar para preparar cuatro 'cronometros' diferentes. El comando EVERY
obliga a BASIC a examinarlos regularmente, y a hacer que cada cierto
intervalo de tiempo se desvie del programa para ejecutar la subrutina
citada en la instruccion. El segundo parametro especifica el 'cronometro'
a emplear, por lo que debe estar en la gama a 3, y el primer parametro
cada cuanto tiempo tiene que efectuar la subrutina cuyo numero de lfnea
viene reflejado por el parametro del comando GOSUB asociado.
CLAVES asociadas: AFTER, REMAIN
-Capftulo 8 Pagina 21-
BASIC: Palabras Clave — \
EXP
EXP Uexprtsion nuteral))
PRINT EXP (6. 876)
968. 743625
FUNCION: El resultado es el numero E elevado a la potencia dada por
el argumento. (El numero E es la base de los logaritmos naturales y
aproximadamente es 2.7182818).
CLAVE asociada: LOG
FIX
FIX ((expresion numeral))
PRINT FIX (9. 99999)
9
FUNCION: A diferencia de la funcion CINT, la funcion FIX da como
resultado exactamente la parte entera de su argumento. Es decir, los
digitos que aparecen antes del punto decimal, (y por tanto, sin ningun
redondeo, como en la funcion CINT).
CLAVES asociadas: CINT, INT, ROUND
FOR
FOR (variable siiple) = (inicio) TO (fin) [STEP <salto>]
FOR DflY=l to 5 STEP 2
ACCION: Marca el comienzo de un parrafo del programa que debe ser
REPETIDO el numero de veces determinado por la variable simple que
controla el 'bucle', mediante los valores inicial y final que ha de tener,
y del 'salto' que debe efectuar a cada ronda. Si no se especifica el
parametro STEP se toma como 1.
CLAVES asociadas: NEXT
Capftulo g Pagina 22
BASIC: Palabras Clave
FRE
FRE ((expresion nuieral))
FRE ({expresion literal))
PRINT FRE(O)
PRINT FRE<"">
FUNCION: El resultado refleja la cantidad de memoria que no ha sido
usada por BASIC, cuando el argumento de la funcion es un numeral.
Cuando el argumento es literal, v.g. FRE(" ") se provoca una "recogida
de basuras" antes de calcular el espacio disponible en memoria.
GOSUB
GOSUB (nueero de linea)
GOSUB 210
ACCION: Hace que BASIC se 'desvie' (VAya Y venGA) a la subrutina
que comienza en esa linea especificada.
CLAVE asociada: RETURN
GOTO
GOTO (nueero de linea)
SOTO 90
ACCION: Hace que BASIC 'brinque' al numero de linea especificado.
(VAYA, pero no vuelva aqui).
Capftulo 8 Pagina 23--'
BASIC: Palabras Clave
HEX$
HEX* ((expresion entera positiva>)[, (expresion enters)])
PRINT HEX* (65534)
FFFE
FUNCION: El mismo argumento expresado en notacion HEXADECIMAL.
(Apendice II).
CLAVES asociadas: BIN$, STR$
HIMEM
HIMEN
7HIMEN
43903
FUNCION: Corresponde a una de las VARIABLES del SISTEMA, que
determina la direccion maxima usada por BASIC, y puede tambien
emplearse en expresiones numerales en la forma normal.
Antes de alterar el valor de la maxima direccion de memoria, usando
el comando MEMORY, es aconsejable examinar el valor de HIMEM,
simplemente con mm=HIMEM. Posteriormente puedes estipular que el
sistema vuelva a emplear esa direccion, mediante el comando
MEMORY mm.
CLAVES asociadas: FRE, MEMORY
IF
IF
IF (expresion logica) THEN (opcion) [ELSE (opcion)]
IF (expresion logica) GOTO (nuaero de linea) [ELSE (opcion)]
IF fl>B THEN fl=C ELSE fl=D
IF A>B GOTO 1000 ELSE 300
Capftulo 8 Pagina 24-
BASIC: Palabras Clave
ACCION: Hace que se examine SI el resultado de la expresion logica
es 'cierto' o 'falso'; y que se ejecuten las acciones reflejadas despues
de la palabra THEN, cuando el resultado es cierto, o que salte a la parte
ELSE, o simplemente a la siguiente li'nea de programa.
Estas instrucciones condicionales pueden 'anidarse', sin mas limitacion
que la longitud de li'nea, sin mas que incluir una instruccion IF dentro
de la serie de comandos que concierne a la parte THEN o a la parte
ELSE de otra instruccion IF anterior.
CLAVES asociadas: THEN, ELSE, GOTO, OR, AND, WHILE
INK
M <ink>,<color)[,<color>]
INK 0, 1
ACCION: Depende del modo corriente de pantalla (Capi'tulo 5), la gama
de valores que pueden tener los parametros; pero cambia el numero de
color, usado para la TINTa de la 'pluma' usada o del TINTe del 'papel'
empleado, de acuerdo con la tabla de numeros de colores del Apendice VI.
CLAVES asociadas: PEN, PAPER
INKEY
INKEY ((expresion altera))
10 CLS:IF INKEY (55) =32 THEN 30 ELSE 20
20 CLS;G0T0 10
30 PRINT "Estas presionando" CSHIFT3 y V"
40 FOR t=l TO 1000: NEXT: GOTO 10
FUNCION: El resultado de la funcion depende del estado en que se
encuentre la tecla cuyo <codigo de entrada> corresponde al argumento
de la funcion. El teclado se escruta completamente en dos centesimas
de segundo, y con esta funcion se puede INDAGAR el estado de una tecla
determinada. Es particularmente util para detectar respuestas S/N, dado
que la pulsacion de la tecla SHIFT puede no afectar al resultado, si se
usa una de las opciones de interpretacion. En el ejemplo anterior se
detecta si estan en ese momento pulsadas las dos teclas SHIFT y V.
Capftulo 8 Pagina 25-J
BASIC: Palabras Clave
Los resultados de la funcion corresponden con:
Valor entregado
-1
32
128
160
SHIFT
cualquiera
NO PULSADA
PULSADA
NO PULSADA
PULSADA
CTRL
cualquiera
NO PULSADA
NO PULSADA
PULSADA
PULSADA
KEY
NO PULSADA
PULSADA
PULSADA
PULSADA
PULSADA
CLAVES asociadas: INPUT, INKEY$
INKEY$
10 CLS
20 PRINT "Eres un tipo inteligente (S o N) ?"
30 a$=INKEY*: IF a*="" GOTO 30
40 IF a*="N" OR a*="n" THEN PRINT
"entonces debes comp ra rme !" :END
50 IF a*="S" OR a*="s" THEN
PRINT "Eres excesivamente modesto ! ! ! " :END
60 GOTO 20
FUNCION: Suministra como resultado el caracter ASCII correspondiente
a la ultima tecla que se haya pulsado (o la que este pulsada en el momento
en que se ejecuta el comando. Si no hay ninguna tecla pulsandose, ni
ninguna pulsacion anterior que este pendiente de tratar, el resultado es
el 'litero vacio' (" "). Es util para no tener que esperar a que el usuario
pulse la tecla ENTER, y poder proseguir el programa inmediatamente.
En el ejemplo se examina el resultado constantemente en la linea 30.
CLAVES asociadas: INPUT, INKEY
INP
INP Hmuero del portal))
PRINT INP(&FF77)
FUNCION: El resultado es el valor depositado en el 'portal de entrada'
cuya direccion viene dada por el argumento de la funcion.
CLAVES asociadas: OUT, WAIT
Capitulo 8 Pagina 26-
BASIC: Palabras Clave
INPUT
INPUT [Knuwral del cauce),][;][<constante literal entre cnilladas>;]<lista
de>: [variable]) or INPUT [fmneral del cauce),][;][(constante literal entre
CMilladas),]<lista de): variable] >
10 CLS
20 INPUT "Dame dos numeros, separados por una
coma";A,B
30 PRINT ft=B THEN PRINT "Los dos numeros son
iguales"
40 IF fl>B THEN PRINT fi "es mayor que" B
50 IF ft<B THEN PRINT A "es menor que" B
60 CLEAR: GOTO 20
ACCION: INGRESA datos procedentes de los circuitos de entrada del
ordenador, a traves del CAUCE cuyo numero se menciona en la instruccion,
y los IMPONE como valores de las variables mencionadas en la instruccion.
La mayor parte de las veces se usa para ingresar datos procedentes del
teclado, y ofrece la posibilidad de incluir un mensaje para que sea
'expuesto' usando el mismo CAUCE de transferencia. Si se incluye un
punto y coma despues del mensaje a exponer, se obliga a que lo termine
con un signo de interrogacion, mientras que la coma suprime dicho signo.
Similarmente, un punto y coma antes de dicho mensaje, impide que se
genere un 'retorno de carro' al final de los datos que se estan imponiendo
por teclado. Los datos ingresados deben ser coherentes con la variable
sobre los que se imponen; en caso contrario (y el mas frecuente es teclear
O en lugar de 0) y se saca el aviso:
?Redo from start
repitiendo ademas el mensaje que hayas especificado en la instruccion,
para que puedas 'volver a teclear desde el principio'.
Todas las respuestas deben concluir pulsando la tecla ENTER.
Cuando se indica un parametro de CAUCE correspondiente a la ductora
de cassette, no tiene objeto incluir el mensaje de ayuda, pero si se
especifica, sera desechado por los programas internos de gestion del^
cassette; por lo que el mismo programa puede ingresar datos a traves
de distintos cauces, sin mas que cambiar el numeral identificativo de
cauce.
Cada dato recuperado de un fichero sera impuesto como valor de cada
variable de la lista resenada en la instruccion, secuencialmente; y deben
ser ambas de la misma clase. Para una variable numerica, el dato debe
estar terrninado por una coma, un retorno de carro, un espacio en bianco,
o la marca de final de fichero. Para una variable literal, el dato sera
tornado con su autentica indole de litero, cuando este encerrado entre
comillas. (Y queremos recalcar que litero implica 'al pie de la letra',
sin tocar, alterar o hacer nada con el).
■Caprtulo 8 Pagina 27-
BASIC: Palabras Clave
Cuando no estan entrecomillados, los datos literales se consideran
terminados en las mismas situaciones mencionadas para los datos numericos.
CLAVES asociadas: LINE INPUT, READ, INKEY$
INSTR
INSTR([(expresion entera), Hexpresion literal), (expresion literal))
PRINT INSTR (2, "BGNflNA", "fiN")
FUNCION: Sirve para examinar el literal dado por el primer argumento,
y determinar donde empieza a aparecer el literal dado por el segundo
argumento, el valor resultante es la posicion correspondiente al segundo
argumento. El parametro numerico opcional indica la posicion a partir
de la que debe comenzar la busqueda; y si se omite, la busqueda comienza
a partir del primer caracter del argumento donde busca.
CLAVES asociadas: MID$, LEFT$, RIGHT$
INT
INT Hexpresion nuaeral))
PRINT INT<-1.995)
FUNCION: El resultado es el numero entero inmediatamente inferior
al valor del argumento. Por lo tanto, es igual que la funcion FIX si el
argumento es positivo, pero con argumentos negativos da como resultado
un numero entero negativo cuyo valor absoluto es la parte entera
redondeada del argumento.
CLAVES asociadas: CINT, FIX, ROUND
JOY
JOY ((expresion entera))
10 IF J0Y(0>=8 THEN GOTO 100
■Capftulo 8 Pagina 28-
BASIC: Palabras Clave
INPUT
INPUT [Knuwral del cauce>,][;H<constante literal entre cotilladas>;]<lista
de): [variable]) or INPUT Ctnuaeral del cauce>,H;][<constante literal entre
CMi 1 ladas> , 1 <1 ista de) : variable] )
10 CLS
20 INPUT "Dame dos numeros, separados por una
coma";fi, B
30 PRINT A=B THEN PRINT "Los dos numeros son
iguales"
40 IF fi>B THEN PRINT fl "es mayor que" B
50 IF fl<B THEN PRINT ft "es menor que" B
60 CLEAR: GOTO 20
ACCION: INGRESA datos procedentes de los circuitos de entrada del
ordenador, a traves del CAUCE cuyo numero se menciona en la instruccion,
y los IMPONE como valores de las variables mencionadas en la instruccion.
La mayor parte de las veces se usa para ingresar datos procedentes del
teclado, y ofrece la posibilidad de incluir un mensaje para que sea
'expuesto' usando el mismo CAUCE de transferencia. Si se incluye un
punto y coma despues del mensaje a exponer, se obliga a que lo termine
con un signo de interrogacion, mientras que la coma suprime dicho signo.
Similarmente, un punto y coma antes de dicho mensaje, impide que se
genere un 'retorno de carro' al final de los datos que se estan imponiendo
por teclado. Los datos ingresados deben ser coherences con la variable
sobre los que se imponen; en caso contrario (y el mas frecuente es teclear
O en lugar de 0) y se saca el aviso:
?Redo from start
repitiendo ademas el mensaje que hayas especificado en la instruccion,
para que puedas 'volver a teclear desde el principio'.
Todas las respuestas deben concluir pulsando la tecla ENTER.
Cuando se indica un parametro de CAUCE correspondiente a la ductoia
de cassette, no tiene objeto incluir el mensaje de ayuda, pero si se
especifica, sera desechado por los programas internos de gestion del
cassette; por lo que el mismo programa puede ingresar datos a traves
de distintos cauces, sin mas que cambiar el numeral identificativo de
cauce.
Cada dato recuperado de un fichero sera impuesto como valor de cada
variable de la lista resenada en la instruccion, secuencialmente; y deben
ser ambas de la misma clase. Para una variable numerica, el dato debe
estar ternminado por una coma, un retorno de carro, un espacio en bianco,
o la marca de final de fichero. Para una variable literal, el dato sera
tornado con su autentica indole de lltero, cuando este encerrado entre
comillas. (Y queremos recalcar que litero implica 'al pie de la letra',
sin tocar, alterar o hacer nada con el).
Capftulo 8 Pagina 27 —
BASIC: Palabras Clave
Cuando no estan entrecomillados, los datos literales se consideran
terminados en las mismas situaciones mencionadas para los datos numericos.
CLAVES asociadas: LINE INPUT, READ, INKEY$
INSTR
INSTR ([(expresion entera),] {expresion literal), {expresion literal))
PRINT INSTR (2, "BftNflNft", "RN")
FUNCION: Sirve para examinar el literal dado por el primer argumento,
y determinar donde empieza a aparecer el literal dado por el segundo
argumento, el valor resultante es la posicion correspondiente al segundo
argumento. El parametro numerico opcional indica la posicion a partir
de la que debe comenzar la busqueda; y si se omite, la busqueda comienza
a partir del primer caracter del argumento donde busca.
CLAVES asociadas: MID$, LEFT$, RIGHT$
INT
INT ({expresion numeral))
PRINT INTC-1.995)
-2
FUNCION: El resultado es el numero entero inmediatamente inferior
al valor del argumento. Por lo tanto, es igual que la funcion FIX si el
argumento es positivo, pero con argumentos negativos da como resultado
un numero entero negativo cuyo valor absoluto es la parte entera
redondeada del argumento.
CLAVES asociadas: CINT, FIX, ROUND
JOY
JOY ((expresion entera))
10 IF J0Y(0)=8 THEN GOTO 100
■Capitulo 8 Pagina 28-
BASIC: Palabras Clave
FUNCION: Proporciona como resultado un numero decimal entero que
'calibra en binario' el estado del control de juegos correspondiente al
argumento. La 'calibracion binaria' responde a la siguiente tabla:
Bit
Decimal
Arriba
1
1
Abajo
2
2
Izquierda
k
3
Derecha
8
4
Gatillo 2
16
5
Gatillo 1
32
CLAVES asociadas: INKEY
KEY
KEY (expresion altera), [CHR*(n)+] (expresi on literal) [CH»(n)]
KEY 140, "RUN"+CHR*(13)
COMANDO: Asocia a la TECLA identificada por el primer parametro
-cuyo valor corresponde al codigo de entrada-, la expresion literal resefiada
como segundo parametro; de manera que cada vez que se pulse esa tecla,
se consigue el mismo efecto que si se hubiera tecleado directamente
toda la expresion literal asociada.
Se suele decir que la tecla es 'programable', o que es una tecla 'funcional 1 ,
o que su codigo es 'expandible'.
En el CPC464 hay 32 posibles teclas, con codigos de entrada en la gama
128 a 159 (Apendice III), y se le pueden asociar expresiones literales con
32 caracteres de longitud como maximo; y siempre que el numero total
de caracteres empleados en todas las asociaciones no sobrepase de 120.
CLAVES asociadas: KEY DEF
KEY DEF
KEY DEFtaueero de tecla), (repiteK, <noreal)[, (turns) [, (control)]]]
KEY DEF 46,1,63
Capitulo 8 Pagina 29-^
BASIC: Palabras Clave
ACCION: Este comando REDEFINE el codigo de entrada asignado a la
tecla dada por el primer parametro, uno o varios codigos de entrada de
acuerdo con los parametros opcionales que se especifiquen en este comando.
El ejemplo anterior convierte la tecla marcada con N para que al pulsarla
se interprete lo mismo que si se pulsa la tecla marcada ?. (El codigo
de entrada (Apendice III) de la tecla n usada en minusculas, mientras que
el codigo ASCII decimal del caracter ? es 63). Para dejar esa tecla en
sus condiciones normales:
KEY DEF 46, 1, 110
ya que el codigo ASCII decimal del caracter n es 110.
CLAVES asociadas: KEY
LEFT$
LEFT$((expresion literal), (expresion entera))
10 CLS
20 A$ = "AMSTRAD"
30 B* = LEFT*(A$, 3)
40 PRINT B*
RUN
(LIMPIflR PflNTALLA)
AMS
Ready
FUNCION: El resultado es una constante literal, obtenida segregando
tantos caracteres ANTERIORES del argumento literal como indique el
argumento numerico. Si la longitud del argumento literal es insuficiente,
el resultado es todo el argumento.
CLAVES asociadas: MID$, RIGHT$
LEN
LEN Hexpresion literal))
A*="0MSTRAD": PRINT LEN (A*)
FUNCION: El resultado es el numero de caracteres que forman el argumento
de la funcion. Estan incluidos todos los caracteres, incluyendo los espacios
en bianco (ya que el argumento es una constante literal).
Capitulo 8 Pagina 30-
BASIC: Palabras Clave
LET
[LET] (variable) = (expresion)
LET X=100
ACCION: Asigna a la variable mencionada la constante que resulte de
evaluar la expresion colocada a la derecha del signo igual. La palabra
reservada LET es un "recuerdo" del BASIC original, pero en el BASIC
AMSTRAD es opcional y el ejemplo anterior puede simplemente escribirse
como: X=100
LINE INPUT
LINE INPUT [(ttnuaeral del cauce>,][;] [constante literal entre cotilladas;] (variable literal)
LINE INPUT [(Knuaeral del cauce), 3 [;] [constante literal entre cotilladas;] (variable literal)
LINE INPUT A*
LINE INPUT "NOMBRE";N$
ACCION: Ingresa toda una LINEA desde el CAUCE indicado, y la IMPONE
como valor de la variable literal mencionada en la instruccion. El cauce
prescrito para omisiones es, como siempre, igual en todo que el comando
INPUT, excepto en que todo lo que se IMPONGA es dado como valor
de la variable, incluyendo los delimitadores como comas y espacios en
bianco, antes del retorno de carro.
CLAVES asociadas: READ, INPUT, INKEY$, INPUT$
LIST
LIST [(gaaa de nuaeros de linea)][,fnuaeral del cauce)]
LIST 100-1000, #1
-Capftulo 8 Pagina 31 ■
BASIC: Palabras Clave
ACCION: El comando LIST hace que se LISTE a traves del CAUCE
especificado, las lineas de programa incluidas en la gama mencionada
en el comando. El cauce #0 es el prescrito y corresponde a la pantalla
del monitor; el cauce #8 corresponde a la impresora.
Puede suspenderse temporalmente el listado, pulsando una vez la tecla
ESC y reanudarse pulsando la barra espaciadora. Una doble pulsacion
ESC permitira ESCAPARSE definitivamente.
Ademas puede dirigirse el listado a traves de los cauces previamente
definidos en pantalla para que aparezcan en ventanas separadas y asi'
servir de ayuda en la depuracion de programas sin tener que sobre-escribir
todo el area de pantalla.
Puede suprimirse la COTA superior de la gama para obtener el listado
desde un numero de linea hasta el final; o suprimirse la COTA inferior
de la gama para obtener el listado desde el principio hasta un numero
de linea; vg.
LIST-200 or LIST 30-
LOAD
LOfiD <no«bre de fichero>[, (expresion direccional)]
LOAD "INVENT"
ACCION: RECUPERAR un programa previamente DEPOSITADO en la
cinta cassette, se usa este comando LOAD para hacer que se CARGUE
en la memoria del ordenador, reemplazando cualquier programa que hubiera
en ella, o si se usa el parametro opcional con una direccion determinada,
cargar un fichero binario en la memoria a partir de la direccion mencionada
Vease el capftulo 2.
LOCATE
LOCATE [finuwral de cauce), ]<x coordenada>,<y coordenada)
10 MODE 1
20 LOCATE 20, 12
30 PRINT CHR*(249)
"Capltulo 8 Pagina 32"
BASIC: Palabras Clave
ACCION: El comando LOCATE hace que el ordenador UBIQUE el cursor
de texto en la posicion correspondiente a las coordenadas absolutas
mencionadas en el comando. Si se especifica el numeral de cauce, el
origen de coordenadas sera el correspondiente a la esquina superior
izquierda de la ventana asociada a dicho cauce. El cauce prescrito para
omisiones es toda la pantalla del monitor.
CLAVES asociadas: WINDOW
LOG
LOG ( (expresion nuaeral))
?L0G(9999)
9.21024037
FUNCION: Calcula el logaritmo natural del argumento; y el resultado
es una constante numerica real aunque el argumento sea entero.
CLAVES asociadas: EXP, LOG10
LOG10
LOG 10(<expresion nuaeral))
?L0G1 0(9999)
3. 99995657
FUNCION: Calcula el logaritmo en base 10 del argumento; y el resultado
es una constante numerica real aunque el argumento sea entero.
CLAVES asociadas: EXP, LOG
Capftulo 8 Pagina 33-
BASIC: Palabras Clave
LOWER$
LONER* (<expresion literal))
fi*="flMSTRftD" : PRINT LOWER* (ft*)
amst rad
FUNCION Convierte a letras minusculas todas las letras mayusculas que
aparezcan en el argumento.
Se utiliza para uniformizar las posibles respuestas ingresadas por teclado.
CLAVE asociada: UPPER$
MAX
MflX((lista de: (expresion nuaeral))
10 n=6S
20 PRINT MftX(l,n, 3, S, 4,3)
FUNCION: El resultado es el numero con valor absoluto MAXIMO que
aparezca en la lista argumento.
CLAVE asociada: MIN
L
MEMORY
MEMORY <expresion direccional)
MEMORY «-20ftfi
ACCION: Cambia la cantidad de memoria disponible para el programa
BASIC, estableciendo como 'cima' de direcciones la que se menciona
en el comando.
CLAVES asociadas: HIMEM, FRE
Capftulo 8 Pagina 34"
BASIC: Palabras Clave
MERGE
NER6E [{notbre de fichero)]
MERGE "PLfiN"
ACCION: El comando MERGE hace que el ordenador CONGREGE en
memoria dos programas: el ya existente en memoria y el procedente
del cassette que habra de tener el nombre mencionado en el comando.
Si no se menciona ninguno, el BASIC intentara CONGREGAR el primer
fichero de la clase adecuada que encuentre en la cinta.
Si el primer caracter del nombre de fichero es el signo de admiracion,
prescindira de el al buscar el fichero en la cinta y de los habituales
mensajes que genera para facilitar el manejo del cassette.
Cuando deseas anadir un programa en cinta al que ya tienes en memoria,
sin que este se vea sobre-escrito por el que anades, deberas RENUMERAR
adecuadamente el programa que tienes en memoria para que sus numeros
de li'nea no coincidan con el programa que anades.
Se cancelan todas las variables, funciones de usuario, y ficheros. Se
cancelan tambien todas las definiciones de clases de variables, y se
arredran todos los punteros internos. Ademas se dejan sin efecto todas
las posibles pautas para casos de error.
Observa que no podras CONGREGAR ficheros, si el procedente de la
cinta no fue previamente GUARDADO utilizando la clase A (ficheros
ASCII).
CLAVES asociadas: LOAD, CHAIN MERGE, SAVE
MID$
NIDi< {literal, (expresion entera) [(expresion entera)])
fl*="fiMSTRftD": PRINT MID* (ft*, 2, 4)
MSTR
ft*="fiMSTRftD" : b*=MID* (ft*, 2, 4) : PRINTb*
MSTR
FUNCION: Como funcion, se usa MID$ para segregar los caracteres
MEDIANEROS del argumento y formar por tanto, un sub-litero de el.
El primer parametro entero que especifica la posicion donde comienza
la segregacion; y el segundo parametro entero la longitud del sub-litero
resultado de la funcion. (Si se omite, se toma hasta el final del argumento).
'Caprtulo 8 Pagina 35
BASIC: Palabras Clave
ACCION: Como comando e instruccion, permite reemplazar en el valor
de una variable literal los caracteres MEDIANEROS. El primer parametro
entero especifica la posicion del primer caracter a reemplazar, y el segundo
parametro entero el numero de caracteres que se reemplazara.
CLAVES asociadas: (como funcion) LEFT$, RIGHT$
MIN
HIN(<lista de: (expresion numeral))
PRINT MIN (3, 6, 2. 999, 8, 9)
2.999
FUNCION: El resultado es el numero con valor absoluto MINIMO que
aparezca en la lista argumento.
CLAVE asociada: MAX
MODE
MODE (expresion entera)
MODE 1
ACCION: Estipula como nuevo modo de pantalla el mencionado en el
parametro (0, 1 6 2). Y deja la pantalla en INK 0, que puede no
corresponder al tinte fijado para el papel. Todas las ventanas de texto
y graficos posibles, quedan restauradas, y los cursores de texto y grafico
se ubican en su posicion base.
CLAVES asociadas: WINDOW, ORIGIN
MOVE
MOVE <x coordenadas), <y coordenadas)
MOVE 34,34
Capitulo 8 Pagina 36-
BASIC: Palabras Clave
ACCION: MUEVE el cursor de graficos a la posicion cuyas coordenadas
relativas se mencionan en el comando. YPOS y XPOS son las funciones
correspondientes para conocer la posicion corriente del cursor de graficos.
CLAVES asociadas: MOVER, PLOT, PLOTR, DRAW, DRAWR, ORIGIN,
TEST, TESTR, XPOS, YPOS
MOVER
HOVER Uncrwwrto de x>, (incretento de y>
MOVER 34,34
ACCION: MUEVE el cursor de graficos usando como coordenadas
RELATIVAS a la posicion anterior del cursor, los parametros horizontal
y vertical especificados en el comando.
CLAVES asociadas: MOVE, PLOT, PLOTR, DRAW, DRAWR, TEST, TESTR,
XPOS, YPOS
NEW
NEW
NEW
ACCION: Este comando VACIA la memoria dejandola preparada para
un NUEVO programa. Las definiciones de teclas no se pierden, ni se limpia
la pantalla. Es un comando del que no puedes recobrar ni el programa
ni las variables existentes en memoria, por lo que solo es un poco menos
peligroso que el restaurado total del ordenador o el apagado. Usalo con
cuidado.
-Capftulo 8 Pagina 37
BASIC: Palabras Clave
NEXT
NEXT [Uistade: (variable)]
FOR n=l TO 1000: NEXT
ACCION: Delimita el final de un bucle reiterative Es decir, el comando
NEXT obliga a que se efectue OTRA ronda si las condiciones del bucle
lo exigen, o que se pase a otra instruccion. Es mas rapido cuando se omite
mencionar el 'contador de rondas' del bucle. En el ejemplo anterior seria
mas lento poner
NEXT n
CLAVES asociadas: FOR
ON GOSUB
ON GOTO
ON <expresion entera) GOSUB (lista de:(nuaero de linea)
ON (expresion entera) 60T0 <lista de:<nuaero de linea)
10 ON DAY B09UB 100,200,300,400,500
10 ON RATE GOTO 1000,2000,3000,4000
ACCION: SEGUN el valor del parametro entero mencionado despues de
ON, hara que el ordenador VAYA a ejecutar una de las instrucciones
mencionadas despues de GOTO. Si el resultado es 1, hara que en la lista
aparezca en primer lugar, si es 2 la que aparezca en segundo lugar. En
el ejemplo, SEGUN el valor de la variable D1A, asi' procedera: cuando
DIA=1 ira a la 1000, cuando DIA=2 ira a la 2000.
La variante con GOSUB simplemente hace que VAya YvenGA al parrafo
que comienza en ese numero de linea.
CLAVES asociadas: GOTO, GOSUB
l_
Capftulo 8 Pagina 38-
BASIC: Palabras Clave
ON BREAK GOSUB
ON BREAK GOSUB <nuaero de lrnea)
10 ON BREAK GOSUB 40
20 PRINT "ejecutando el programa"
30 GOTO 20
40 CLS
50 PRINT "pulsando CESC] dos veces llama
la rutina GOSUB"
60 FOR t=l TO 2000: NEXT
70 RETURN
ACCION: Cuando se produzca una interrupcion en la ejecucion del
programa (vg. pulsando dos veces la tecla de ESC) proseguira la ejecucion
del programa en la subrutina mencionada.
CLAVES asociadas: ON BREAK STOP, RETURN
ON BREAK STOP
ON BREAK STOP
10 ON BREAK GOSUB 40
20 PRINT "ejecutando el programa"
30 GOTO 20
40 CLS
50 PRINT "pulsando CESC3 dos veces llama a
la rutina GOSUB"
60 FOR t=l TO 2000: NEXT
65 ON BREAK STOP
70 RETURN
ACCION: CUANDO se ve 'atrapado' en una interrupcion y esta por tanto
ejecutando la subrutina pertinente, la instruccion ON BREAK STOP,
desactiva el 'cepo 1 , sin ningun otro efecto inmediato. En el programa
anterior, que incluye ON BREAK STOP, el 'cepo' ON BREAK GOSUB
operara solamente una vez.
CLAVES asociadas: ON BREAK GOSUB
-Capftulo 8 Pagina 39
BASIC: Palabras Clave
ON ERROR GOTO
ON ERROR GOTO fanero de linea)
10 ON ERROR GOTO 80
20 CLS
30 PRIIMT"si hay un error, prefiero"
40 PRINT" listar el programa"
50 PRINT"a si puedo ver do ride me equivoco"
60 FOR t=l TO 4000: NEXT
70 BOTO 200
80 CLS: PR I NT" hay un error en la 1 inea" ;ERI_: PRINT
90 LIST
ACCION: CUANDO haya un error al estar ejecutandose un programa,
hara que el ordenador VAYA al numero de linea mencionado. En este
ejemplo, en la linea 70 se producira el error.
CLAVES asociadas: ERR, ERL, RESUME
ON SQ GOSUB
ON SQ (<canal>) GOSUB (nuwro de linea)
ON SQ (2) GOSUB 2000
ACCION: CUANDO el sistema detecta que existe un hueco vacio en el
'chorro de notas 1 del canal de sonido mencionado en la instruccion,
generara una serial de interrupcion, que obligara al ordenador a desviarse
a la subrutina mencionada en la instruccion. Los numeros de canal
corresponden a: .
1 para el canal A
2 para el canal B
4 para el canal C
CLAVES asociadas: SOUND, SQ
■Capitulo 8 Pagina 40-
BASIC: Palabras Clave-
OPENIN
OPENIN <rw«bre de f ichero)
100 OPENIN " ! INFORMflCION"
ACCION: ABRE como fichero de ENTRADA el mencionado despues de
OPENIN; y prepara en memoria el 'buzon de entrada 1 de la informacion
procedente del cassette.
Si se menciona como caracter anterior del nombre de fichero el ?, se
suprimiran los mensajes de ayuda al manejo del cassette y el programa^
extraera del cassette el primer bloque de datos y lo pondra a disposicion
del programa.
CLAVES asociadas: COSEIN, OPENOUT
OPENOUT
OPENOUT faoabre de fichero)
OPENOUT "! DATOS"
ACCION: ABRE como fichero de SALIDA el mencionado despues de
OPENOUT; y prepara en memoria el 'buzon de salida' de la informacion
procedente del cassette.
Si se menciona como caracter anterior del nombre de fichero el ?, se
suprimiran los mensajes de ayuda al manejo del cassette y el programa^
extraera del cassette el primer bloque de datos y lo pondra a disposicion
del programa.
Cada bloque de datos consta de 2Kbs, y no se transferira a la cinta hasta
que el buzon de salida este lleno, o se CIERRE el fichero de SALIDA,
usando la instruccion CLOSEOUT.
NB: El comando NEW tambien VACIA el buzon de salida, con la
subsecuente perdida de datos.
CLAVES asociadas: CLOSEOUT, OPENIN
-Capftulo 8 Pagina *1-
BASIC: Palabras Clave
ORIGIN
0RI6IN <x> , <y> [, Uzquierda) , <derecha) , (arriba) , (aba jo) ]
10 CLS: BORDER 13
20 ORIGIN 0,0,50,590,350,50
30 DRAW 540,350
40 GOTO 20
ACCION: Estipula el punto ORIGEN para el cursor de graficos. Los
parametros opcionales de este comando fijan los li'mites de una nueva
ventana de graficos, que sera operativa en todos los modos admitidos
de pantalla, debido a la tecnica de coordenadas empleadas.
El ORIGEN es habitualmente el punto de coordenadas 0,0 situado en la
esquina inferior izquierda de la ventana, y las coordenadas aumentan
verticalmente y hacia la derecha. En el Apendice VI, presentamos reti'culas
para poder planificar tus graficos correctamente.
Si cualquiera de los corners de la ventana corresponde a una posicion
que se sale de la pantalla, se tomara automaticamente la posicion "visible"
mas alejada en esa direccion.
CLAVES asociadas: WINDOW
OUT
OUT (rimero de portal), (expresion entera)
OUT &F8F4, 10
ACCION: Envia el valor del parametro entero (que debe estar en la gama
a 255) al portal de SALIDA correspondiente a la direccion mencionada.
CLAVES asociadas: INP, WAIT
L
Capitulo 8 Pagina 42-
BASIC: Palabras Clave
PAPER
PAPER [Knuaeral de cauce),](tinta usada)
10 MODE
20 FOR p=0 TO 15
30 PAPER p:CLS
40 PEN 15-p
50 LOCATE 6, 125PRINT "PAPER"p
60 FOR t=l TO 500: NEXT t
70 NEXT p
ACCION: Estipula el TINTe correspondiente al PAPEL (fondo) de la pantalla
Cuando se exponen caracteres en la pantalla de textos, la posicion del
caracter se rellena con la TINTa correspondiente a PAPER antes de
sobre-escribir el caracter con la tinta correspondiente a PEN, a no ser
que se haya elegido el modo transparente.
El numero de colores que puede aparecen en pantalla depende del modo
elegido. Si el parametro de tinta mencionado en el comando, no esta
disponible, se tomara el valor prescrito para omisiones.
CLAVES asociadas: INK, WINDOW, PEN
PEEK
PEEK(<expresion direccional))
10 MODE 2
20 INK 1,0: INK 0,12 : BORDER 12
30 INPUT "Direccion de inico para su examen" ; inicio
40 INPUT "Direccion del final para su examen" ; final
50 FOR n= inicio TO final
60 VALUE*=HEX*(PEEK<n>,2>
70 PRINT VALUE*;
80 PRINT" en " ;HEX* <n> , 4) ,
90 NEXT
FUNCION: El resultado es en notacion decimal, el contenido de la celdilla
de memoria cuya direccion viene expresada por el argumento de la funcion.
El ejemplo muestra un programa 'utensilio' que te permite PINZAR y
observar en pantalla el contenido de la memoria de lectura y escritura
del CPC464, junto con la correspondiente direccion.
CLAVES asociadas: POKE
-Capftulo 8 Pagina *3-
BASIC: Palabras Clave
PEN
PEN [Knuaeral del cauce), Ktinta usada)
PEN 1,2
ACCION: Estipula la tinta a usar con la PLUMA cuando se usa una
deter minada ventana (correspondiente al cauce mencionado). Si no se
menciona explfcitamente un cauce, el comando afecta al cauce numero 0,
que como siempre, corresponde a toda la pantalla.
CLAVES asociadas: INK, PAPER
PI
PI
PRINT PI
3. 14159265
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
REM Dibujo en perspectiva
MODE 2
ROD
INK 1,0
INK 0, 12
BORDER 9
FOR N= 1 TO 200
ORIGIN 420,0
DRAW 0, 200
REM dibuja angulos en puntos de fuga
DRAW 30*N*SIN<N*PI/4), (SIN(PI/2) ) *N*SIN(N)
NEXT
MOVE 0,200
DRAWR 0,50
DRAWR 40,0
WINDOW 1,40,
PRINT"Ahora
Ahorcado ! "
1,10
puede terminar el
programa del
FUNCION: Realmente es una variable numerica real intri'nseca del
ordenador. Representa la relacion entre la circunferencia y el diametro
de un ci'rculo, y el valor con el que se opera es de 3.141592653468251.
Se usa ampliamente en las rutinas de graficos tal como la presentada
en el ejemplo.
CLAVES asociadas: DEG, RAD
Capftulo 8 Pagina 44-
BASIC: Palabras Clave
PLOT
PLOT <x coordenada),{y coordenada) [, (tinta usada)]
10 MODE 2: PRINT "Pulse 4 numeros, separados
por comas": PRINT
20 PRINT "Pulse X origen (0-639),
Y origen (0-399), radio y angulo
del salto ": INPUT x, y, r, s
30 ORIGIN x,y
40 FOR angulo = 1 to 360 STEP s
50 XPOINT = r*cos (angulo)
60 YPOINT = r*c os (angulo)
70 PLOT XPOINT, YPOINT
74 REM MOVE 0,0
75 REM DRftW XPOINT, YPOINT
80 NEXT
ACCION: Es mas rapido que ensayes con los parametros 320, 200, 20,
1 como primera respuesta al ejemplo. Luego activa la linea 75 (quita
REM) y desactiva la linea 70 (precedela de REM) para ver la diferencia.
Observa que en el primer caso se PINTA el contorno del circulo, y en
el segundo se dibuja un circulo solido. Recuerda tambien que en este
programa se usan RADIANES para las magnitudes angulares, (que es
el modo prescrito como normal), por lo que el angulo en cada paso es
mucho mayor de 1 grado (aproximadamente 51 grados). Puedes teclear
el comando 25 DEG para pasar a grados y ver el efecto.
CLAVES asociadas: DRAW, DRAWR, PLOT, PLOTR, MOVE, MOVER,
ORIGIN, TEST, TESTR, XPOS, YPOs
PLOTR
PLOTR , (x coordenada), (y coordenada) [, (tinta usada) 1
10 MODE 2: PRINT "Pulse 4 numeros,
separados por comas": PRINT
20 PRINT "Pulse X origen (0,369),
Y origen (0-399), radio y angulo
del salto": INPUT x, y, r, s
30 ORIBIN x,y
40 FOR angulo = 1 to 360 STEP s
50 XPOINT = r*C0S (angulo)
60 YPOINT = r*C0S( angulo)
70 PLOTR XPOINT, YPOINT
80 NEXT:B0T0 40
ACCION: Ensaya 320, 0, 20, 1 como respuestas. PLOTR es similar a
DRAWR, pero solamente PINTA la mota cuyas coordenadas RELATIVAS
se mencionan en el comando.
CLAVES asociadas: DRAW, DRAWR, PLOT, PLOTR, MOVE, MOVER,
ORIGIN, TEST, TESTR, XPOS, YPOS ., ,
Capitulo 8 Pagma *5
POKE
POKE (expresion direccional), texpresion entera)
POKE &OOFF, 10
ACCION: Permite accesar directamente la celdilla de memoria cuya
direccion se menciona, y hacer que se PUNZE en ella el equivalente
binario del parametro entero que se menciona, que por tanto debe estar
en la gama a 255.
Usala con cuidado porque puedes afectar el comportamiento del programa
de manera impredecible.
CLAVE asociada: PEEK
POS
POS(i<nuaeral de cauce)
PRINT PDS(#0)
1
FUNCION: El resultado es la posicion corriente del cursor en el cauce
mencionado como argumento. En este caso, no hay valor prescrito para
omisiones del numeral de cauce, y ademas, si lo omites se provocara
un mensaje de error sintactico.
Cuando el cauce corresponde a la pantalla, el resultado refleja la
coordenada X del cursor de texto, en relacion con el costado izquierdo
de la ventana correspondiente.
Cuando el cauce corresponde a impresora, el resultado refleja la posicion
del cabezal de impresion siendo el valor 1 el correspondiente al margen
izquierdo. En la cuenta, solo se incluyen los caracteres ASCII con codigos
mayores de 32 (&1F).
Cuando el cauce corresponde al cassette, es lo mismo que para la
impresora.
CLAVES asociadas: VPOS
Capftulo 8 Pagina 46-
BASIC: Palabras Clave
PRINT
PRINT [Knuaeral de cauce),]C (print lista)][ (clausula USIN6>][ (separator)]]
PRINT #0, "abc"
ACCION: La explicacion completa aparece en las paginas finales de este
capi'tulo.
CLAVES asociadas: USING, TAB, SPC
RAD
ACCION: Estipula que las magnitudes angulares se tomen en RADIANES.
CLAVES asociadas: DEG, SIN, COS, TAN, ATN
RANDOMIZE
RRNDOMIZE [(expresion nuaeral)]
10 RANDOMIZE 23
20 PRINT RND (6)
ACCION: El BASIC tiene la habilidad de generar una secuencia pseudo-
aleatoria (cada numero depende del que le precede) utilizando como germen
el parametro mencionado en el comando ALEATORICE. Si se omite el
parametro, se requerira al operador que imponga un valor por teclado,
que ha de estar en la gama -32768 a 32768.
Si no se utiliza el comando RANDOMIZE en el programa, la secuencia
generada es siempre la misma cada vez que se ejecute el programa. Si
se usa la variante RANDOMIZE TIME el germen de la secuencia depende
del TIEMPO transcurrido desde un determinado momento, con lo que
resulta una aleatorizacion practicamente completa.
CLAVES asociadas: RND
-Capftulo 8 Pagina 47
BASIC: Palabras Clave
READ
READ lista de: (variable)
10 FOR X=l TO 4
20 READ N*
30 PRINT N*
40 DATA JOSE, LUIS, JAVIER, PEDRO
50 NEXT
ACCION: Con la instruccion READ se logra que el sistema APUNTE
correlativamente como valor de las variables las constantes resenadas
en las instrucciones DATA. El sistema mantiene un 'puntero' interno
para conocer las constantes que ya lleva apuntadas a las variables. Con
la instruccion RESTORE se le obliga a que ARREDRE dicho puntero.
CLAVES asociadas: DATA, RESTORE
RELEASE
RELEASE (canales de sonido)
RELEASE 4
ACCION: Cuando se envia a un canal de sonido una NOTA, se la puede
marcar como RETENIDA. Con el comando RELEASE, se le queda
LIBERADA la del canal o canales mencionados por el parametro de dicho
comando. El valor del parametro esta calibrado en el sistema binario,
de la siguiente forma: A=bit 0, B=bit 1, C=bit 2. Por lo tanto, un valor
de k en el parametro (en binario 0100) afecta solo al canal de sonido C.
CLAVE asociada: SOUND
REM
REN (el resto de la linea)
10 REM Monstruo Hiperespacial Intergalact ico
a la caza de los Invasores por AMSOFT
20 REM Copyright AMSOFT 1984
■Capitulo 8 Pagina 48-
BASIC: Palabras Clave
ACCION: Colocando en una linea de programa la palabra reservada REM
se le hace que reMEMOre todo lo que se escriba despues y hasta el
'retorno de carro'; pero que no tenga ningun efecto sobre el programa.
Puede sustituirse la palabra clave REM por el apostrofe ' . Por supuesto,
el apostrofe no puede formar parte de ninguna constante literal.
REMAIN
REMAIN ({expresion entera))
REMAIN (3)
PRINT #6, REMAIN (0) ;
FUNCION: Desactiva el temporizador de demora especificado (en la'gama
a 3).
Lee la cuenta que QUEDA en el temporizador de demora. Se devuelve
si el temporizador de demora no estaba activado.
CLAVES asociadas: AFTER, EVERY
RENUM
RENUM [<nuevo nuiero de linea)] [.[(anterior nuaero de linea)][, (increiento)]]
RENUM
RENUM
100, , 100
ACCION: Renumera las lineas del programa a partir del numero de Ifnea
antiguo, al que hace corresponder el numero de Ifnea nuevo, y en saltos
dados por el tercero de los parametros. Si se omite el parametro de salto,
renumera de 10 en 10. Si se omite el numero de linea vie jo, renumera
a partir del primer numero de linea del programa. Si se omite el numero
de linea nuevo, renumera empezando con el 10.
Durante la renumeracion, el sistema se preocupa de cambiar los numeros
destinos de saltos y. desvios. Los numeros de linea validos para un
programa deben estar en la gama 1 a 65535.
En el primero de los ejemplos en que se han omitido los tres parametros,
el resultado de la renumeracion sera un programa comenzando con el
numero de linea 10 e incrementando de 10 en 10 los numeros de ifnea
subsiguientes.
Capitulo 8 Pagina *9—
BASIC: Palabras Clave
RESTORE
RESTORE [<nuwro de linea)]
RESTORE 300
10 FOR N=l TO 6
20 READ P*
30 PRINT A* " ";
40 DATA restaurada, puede, ser, releida
50 NEXT
60 PRINT
70 RESTORE
80 GOTO 10
ACCION: El sistema mantiene un 'puntero' interno senalando -en las series
de constantes utilizadas en el programa- la ultima que ha apuntado como
valor de una variable. Con el comando RESTORE se le obliga a que
REPUNTE dicho puntero hacia la serie de constantes que corresponde
al numero de ifnea mencionado como parametro. Si se omite ese numero
de linea se conseguira que repunte a la primera constante de la primera
serie de constantes que haya en el programa.
CLAVES asociadas: READ, DATA
RESUME
RESUME[<nuiero de linea)]
o RESUME NEXT
RESUME 300
ACCION: Cuando se ha colocado en el programa un 'cepo', mediante
la instruccion ON ERROR GOTO nnn, y se ha 'atrapado' un error durante
la ejecucion; se puede incluir en el tratamiento subsecuente del error,
el comando RESUME para hacer que se REANUDE la ejecucion del
programa, a partir del numero de linea mencionado en la instruccion.
En lugar del numero de linea, tambien se puede reflejar la palabra clave
NEXT, con lo que la reanudacion se hara a partir de la instruccion
SIGUIENTE a la que se produjo el error.
CLAVES asociadas: ON ERROR GOTO
Capitulo 8 Pagina 50-
BASIC: Palabras Clave
RETURN
RETURN
RETURN
ACCION: Indica la culminacion de una subrutina, y hace que el sistema
VUELVA a la instruccion inmediatamente siguiente a la que produjo el
ultimo desvio.
CLAVES asociadas: GOSUB, ON n GOSUB, ON SQ GOSUB, AFTER n
GOSUB, EVERY n GOSUB, ON BREAK GOSUB
RIGHT$
RIGHT* ({expresion literal), {expresion entera))
10 CLS
20 A* = "AMSTRAD"
30 B* = RIGHT* (ft*, 3)
40 PRINT B*
RUN
[LIHPIfl PflNTflLLfl]
RAD
Ready
FUNCION: Segrega del parametro literal de la funcion tantos caracteres
ULTERIORES como indique el parametro entero de la funcion. El resultado
es pues, el sublitero colocado en la parte derecha del argumento, y si
dicho argumento tiene menos longitud que la exigida por el segundo
argumento numerico, el resultado es exactamente igual al argumento.
CLAVES asociadas: MID$, LEFT$
RND
RNDK (expresion nuaeral))]
10 RANDOMIZE 23
20 PRINT RND (6)
■ Capitulo 8 Pagina 51-
BASIC: Palabras Clave
FUNCION: Recaba un numero aleatorio de la secuencia generada
internamente, en el intervalo a 1 y es el siguiente en secuencia, cuando
el argumento se omite o es positivo; la repeticion del ultimo recabado
cuando es 0; o siempre el primero cuando el argumento es negativo.
el comando RANDOMIZE del programa anterior, asegura que el resultado
de RND(6) es siempre el mismo numero cada vez que se ejecuta el
programa (0.146940658), con lo que se destruira el AZAR entre jugadas.
CLAVES asociadas: RANDOMIZE
ROUND
ROUND (<expresion nuaeralH, (expresion entera)])
10 x=0. 123456789
20 FOR r=9 TO STEP -l: PRINT r, ROUND (x, r> : NEXT
25 x= 123456789
30 FOR r=0 TO -9 STEP -1
40 PRINT r, ROUND (x, r>
50 NEXT
FUNCION: Entrega el valor del primer argumento numeral REDONDEADO
a la potencia de 10 senalada por el segundo argumento de la funcion. Si
el segundo argumento es negativo, el valor obtenido es un entero seguido
por tantos ceros despues del punto decimal como indique el segundo
argumento.
CLAVES asociadas: INT, FIX, CINT, ABS
RUN
RUN (expresion literal)
RUN "BIENVENIDO"
ACCION: Carga un programa desde el cassette en la memoria del
ordenador, y comienza a EJECUTARLO inmediatamente. Si no se menciona
nombre del programa (ie. se teclea RUN " ") el sistema cargara y ejecutara
el primer fichero que encuentre en la cinta. Si el caracter anterior de
la expresion literal es ! se suprimiran los mensajes de ayuda para
manipulacion del cassette.
NB: Este comando implica que BASIC realice previamente un comando
NEW, inmediatamente antes de comenzar a leer en la cinta.
Capftulo 8 Pagina 52-
BASIC: Palabras Clave
CLAVES asociadas: LOAD
RUN
RUNCOiuaero de linea)]
RUN 100
ACCION: Comienza a EJECUTAR el programa existente en memoria
a partir de la linea mencionada; o a partir de la primera linea si no se
menciona ninguna.
Con este comando, se cancelan todas las funciones de usuario estipuladas
y se anulan todos los valores de las variables. Asimismo, se anulan todos
los posibles convenios sobre nombres de variables; y se vacian todos los
buzones de salida de los ficheros en cinta, con la consiguiente perdida
de informacion. Usa el comando GOTO nn, si no quieres perder esa
informacion.
CLAVES asociadas: LOAD, GOTO
SAVE
SAVE (noibre de fichero) [, (tipo de fichero)H, (paraaetros binarios)]
SAVE "PROG" , P
ACCION: El comando SAVE hace que se GUARDE en la cinta el programa
existente en memoria, con el nombre de fichero mencionado. Dependiendo
del valor del ultimo parametro del comando, el programa guardado sera
un fichero de la clase:
ASCII cuando el parametro sea ,A
Protegido cuando el parametro sea ,P
Binario cuando el parametro sea ,B (usado para que se GUARDE
la informacion contenida en
ciertas partes de la memoria,
v.g. la referente a pantalla).
CLAVES asociadas: LOAD, RUN <nombrefichero^ MERGE, CHAIN,
CHAIN MERGE
■ Capftulo 8 Pagina 53-
BASIC: Palabras Clave-
SGN
SNGHexpresion numeral))
10 INPUT "Cual es tu Balance Bancario act ua 1 " ; C AJfl
20 IF SNG(CflJA) <1 GOT 30 ELSE 40
30 PRINT "Horror, que mal":NED"
40 PRINT"Andas mejor que yo, eh!""
FUNCION: El valor entregado depende del SIGNO del argumento de la
funcion; siendo -1 si el argumento es menor que (negativo), siendo
si el argumento es igual a 0, y siendo 1 cuando el argumento es mayor
que (positivo).
CLAVES asociadas: ABS
SIN
SINUexpresion numeral))
PRINT SIN(PI/2)
1
FUNCION: El resultado es siempre una constante numerica real, igual
al SENO del argumento; que sera considerado en radianes, a no ser que
previa y explfcitamente se haya declarado que son GRADOS.
CLAVES asociadas: COS, TAN, ATN, DEG, RAD
SOUND
SOUMHestado de canal), (periodo de tono), (duracion) C, (volwenH, <envolventc de voluaen)
[, (envolvente de tono)[, (periodo de nudo)]]]]]
SOUND 1,200,1000,7,0,0,1
Capftulo 8 Pagina 54
BASIC: Palabras Clave
ACCION: Las facetas del SONIDO del CPC464 es una de las
caracterfsticas mas potentes y complejas del CPC464, y se explica
detalladamente en el capitulo 6.
CLAVES asociadas: ENV, ENT
SPACE$
SPflCEHtexpresion entera))
SPACE* (190)
FUNCION: El resultado es una constante literal formada exclusivamente
por el numero de ESPACIOS en bianco expresado por el valor del
argumento.
CLAVES asociadas: PRINT, SPC, TAB
SPEED INK
SPEED INK (expresion entera), <expresi on entera)
5 INK 0,9, 12: INK 1,0,26
10 BORDER 12,9
20 SPEED INK 50,20
ACCION: Se puede hacer que la tinta del papel o de la pluma, y el
borde de la pantalla parpadee entre dos posibles colores asociados al
numero de tinta: el comando SPEED INK permite variar la CADENCIA
de parpadeo entre esos dos colores. El primer parametro entero especifica
el tiempo correspondiente al primer valor de tinta, y el segundo parametro
el correspondiente al segundo valor de tinta. Los tiempos se miden en
unidades de 2 centesimas de segundo (con suministro a 50Hz).
Debes ejercer cuidadosamente tus apreciaciones, para evitar efectos de
'perceptibilidad mesmerica' al elegir los colores y cadencias de
repeticion.
CLAVES asociadas: INK, BORDER
■Capitulo 8 Pagina 55-
BASIC: Palabras Clave
SPEED KEY
SPEED KEY <dawra de cotienzo), (periodo de repeticion)
SPEED KEY 20,3
ACCION: Si se mantienen pulsadas un determinado tiempo, las teclas
del CPC464 repetiran automaticamente el envio de las senales pertinentes
con el perfodo designado por el primer parametro y con la demora en
el arranque designada en el segundo parametro. El ajuste se hace en
incrementos de 0,02 segundos y ambos parametros deben estar en la gama
1 a 255. Los valores prescritos para omisiones son 10 y 10 unidades de
tiempo respectivamente.
Las demoras en el arranque que tengan valores muy pequefios pueden
afectar a las rutinas 'quita rebotes' de las teclas. La velocidad de
exploracion del teclado que internamente se efectua no se ve afectada
por este comando. No todas las teclas son tipomaticas, y cuando el usuario
redefine el significado de una tecla, puede establecer este atributo de
tipomatismo para esa tecla.
CLAVES asociadas: KEY DEF
SPEED WRITE
SPEED WRITE (expresion enters)
SPEED WRITE 1
ACCION: En el sistema se pueden efectuar las transferencias de
informacion entre el ordenador y el cassette eligiendo entre dos
velocidades, y con el comando SPEED WRITE, se fija la VELOCIDAD
de ESCRITURA en el cassette: si el valor del parametro es 1 la velocidad
elegida es 2000 baudios, y si es la de 1000 baudios. ,
Cuando lee informacion de la cinta, el CPC464 establece automaticamente
la velocidad de lectura al valor correspondiente a la que se uso al
escribirla; por lo que no es elegible por el usuario la velocidad de 'lectado 1 .
Cuando se usan cintas magneticas de dudosa calidad de grabacion y
lectura, se recomienda usar la velocidad de 1000 baudios para una
fiabiiidad maxima (veanse las notas del capftulo 2 para mas informacion).
Capitulo 8 Pagina 56"
BASIC: Palabras Clave
CLAVES asociadas: SAVE
SQ
SQ( (canal))
10 MODE 1
20 FOR n=20 TO STEP-1
30 PRINT n;
40 SOUND 1, 10+n, 100, 7
50 WHILE SQ(1)> 127: WEND
60 NEXT
FUNCION: La funcion SQ se utiliza para examinar el ESTADO DEL
CANAL de sonido correspondiente al argumento; y el valor resultante
esta calibrado en binario de la siguiente manera. Los bits 0, 1, 2 indican
el numero de 'huecos' existentes en el CHORRO DE NOTAS pendientes
de ser emitidas por el altavoz.
Los bits 3, 4 y 5 indican si la primera de las notas del chorro (si hay
realmente chorro) esta marcada como ACORDE con algun otro canal
de sonido.
El bit 6 indica si la citada nota de cabecera esta RETENIDA.
El bit 7 si el canal correspondiente esta corrientemente ACTIVADO.
El argumento de la funcion tambien esta calibrado en binario, con el
bit 1 para el canal A, el bit 2 para el canal B y el bit 3 para el canal C.
Por tanto, un valor decimal de 5 hace que el comando afecte a los canales
A y C.
CLAVES asociadas: ON SQ GOSUB
SQR
SQRUexpresion nuaeral))
PRINT SQR (9)
3
FUNCION: Entrega como resultado la rafz cuadrada del argumento (que
ha de tener un valor positivo).
CLAVES asociadas: PRINT
-Capitulo 8 Pagina 57
BASIC: Palabras clave
STOP
STOP
300 IF n<0 THEN STOP
ACCION: El comando STOP hace que se pare la ejecucion del programa,
pero que permanezca en un estado tal que pueda hacerse que SIGA usando
el comando CONT. Suele usarse como instruccion dentro del programa
en determinados puntos durante la depuracion del programa y luego se
suprime.
CLAVES asociadas: CONT, END
STR$
STR$(<expresion nuaeral>)
PRINT STR*(&766)
1984
PRINT
84
STR*(&1010100)
FUNCION: Convierte el argumento numeral a la constante literal
equivalente. Como en los ejemplos, puede usarse para hallar los
equivalentes en el sistema decimal de numeros en notacion binaria o
hexadecimal; pero ten siempre presente que el resultado es de INDOLE
LITERICA.
CLAVES asociadas: VAL, PRINT, HEX$, BIN$
STRING$
STRING$((expresion entera), (especificador del caracter))
PRINT STRING*(&16 7 "*">
ft*********************
FUNCION: Entrega como. resultado una constante LITERAL formada por
tantos caracteres como especifique el primer argumento entero, y del
caracter asignado en el segundo argumento.
Capftulo 8 Pagina 58
BASIC: Palabras clave
CLAVES asociadas: SPACE$
SYMBOL
SYMBOL (nuaero de caracter), {lista de:<filas>
5 MODE 2
10 SYMBOL OFTER 90
20 SYMBOL 93, &80, &40, &10, &8, &4, &2, &1
30 FOR n=l TO 2000
40 PRINT CHR*(93) ;
50 NEXT
60 GOTO 60
ACCION: Permite redefinir el tipo, los ocho trazos con que se expone
en pantalla. Del SIMBOLO cuyo codigo CPC464 es el designado por el
primer parametro del comando; sustituyendolo por el resultante de
utilizar los 8 parametros de la lista subsiguiente.
Para preparar la lista es conveniente usar una cuadricula de 8 x 8, y
51 rellenar o NO rellenar cada uno de los 64 cuadritos de acuerdo con
el tipo o figura que desees; y considerar cada una de las 8 filas como
un numero segun el sistema binario de numeracion, y expresarlo en el
comando por el equivalente en el sistema que desees. En pantalla, el
sistema mostrara una mota con el tinte fijado para el papel cuando haya
un 1 (SI), y una mota con la tinta f ijada para la pluma cuando haya un
(NO).
En el ejemplo, el tipo definido es una pequena raya diagonal, y sera
accesible por teclado usando la tecla marcada ] cuyo codigo CPC464
y ASCII es 93.
CLAVES asociadas: SYMBOL AFTER
SYMBOL AFTER
SYMBOL AFTER (expresion altera)
SYMBOL AFTER 90
-Capftulo 8 Pagina 59
BASIC: Palabras clave
ACCION: DE5PUES de este comando queda fijado el numero de caracteres
definibles por el usuario a un valor dependiente del parametro del comando.
Si se omite, se considera que el parametro es 240, dejando por tanto
16 caracteres como definibles por el usuario. Si el valor de parametro
es 32 todos los caracteres con codigos CPC464 incluidos en la gama 32
a 255, se convierten en redefinibles por el usuario. Siempre que el sistema
ejecuta este comando, todos los caracteres que tenga previamente definidos
el usuario, se restauran al tipo prescrito en el sistema.
CLAVES asociadas: SYMBOL
TAG
TA6[l<nuaeral de cauce)]
10 MODE 2
11 BORDER 9
14 INK 0, 12
15 INK 1,0
20 FOR n=l TO 100
30 MOVE 200+n, 320+n
40 TfiG
50 IF n<70 BOTO 60 ELSE 70
60 PRINT'Hola"; :B0T0 80
70 PRINT" fid i os";
80 NEXT
90 GOTO 20
ACCION: El texto enviado hacia un cauce dado, puede ser redireccionado
para que se escriba en la posicion de cursor de graficos. Esto permite
que se mezclen textos y sfmbolos con graficos. El <numeral del cauce>
esta prescrito a #0 si se omite el parametro. El trazo superior de la
celdilla del caracter es 'pegado como una etiqueta' al cursor de graficos,
y apareceran caracteres de control no visivos (eg. teclear nueva lihea),
si la instruccion PRINT no va seguida de un punto y coma ; .
CLAVES asociadas: TAGOFF
TAGOFF
Tfl60FF[t<mi«eral de cauce)]
TfiGOFF #0
■ Capftulo 8 Pagina 60 —
BASIC: Palabras clave
ACCION: Cancela el TAG para un cauce dado, y envfa el texto a la
posicion previa del cursor de textos en el punto en que se invoco TAG.
CLAVES asociadas: TAG
TAN
TflN((expresion miieral))
PRINT TON (45)
FUNCION: Calcula la tangente del angulo dado por el argumento de la
funcion, que debe estar en la gama -200.000 a +200.000, con la medida
en radianes prescrita para omisiones.
CLAVES asociadas: COS, SIN, ATN, DEG, RAD
TEST
TEST<<x coord«Mda>,<y coordenada))
PRINT TEST (300, 300)
FUNCION: Examina y da como resultado el valor de la tinta especificada
en ese momento para esa posicion de la pantalla de graficos dada por
las coordenadas ABSOLUTAS.
CLAVES asociadas: TESTR, MOVE, MOVR, PLOT, PLOTR, DRAW, DRAWR
TESTR
TESTRUncrwento de x>, (incretento de y)
TESTR (5, 5)
FUNCION: Examina y da como resultado el valor de la tinta en la
posicion de la pantalla de textos, cuyas coordenadas RELATIVAS a la
posicion corriente del cursor de graficos corresponde con los argumentos
de la funcion.
— Capitulo 8 Pagina 61-
BASIC: Palabras clave
CLAVES asociadas: TEST, MOVE, MOVER, PLOT, PLOTR, DRAW, DRAWR
TIME
TINE
10 DATUM = INT (TIME/300)
20 TICKER=( (TIME/300) -DATUM)
30 PRINT TICKER;
40 GOTO 20
FUNCION: Entrega como resultado el TIEMPO transcurrido desde la puesta
en marcha del ordenador, descubriendo aquellos periodos de tiempo en
que se efectuaran transferencias de datos con la cinta cassette. La unidad
de medida del tiempo es de 1/300 de segundo.
TRON
TROFF
TRON
TROFF
TRON
ACCION: BASIC incluye esta facilidad para RASTREAR la ejecucion
de un programa; y hace que se PONGA en RASTREO con el comando
TRON y que se QUITE el RASTREO con el comando TROFF. Con esta
operacion de rastreo los numeros de linea del programa que esta
ejecutandose, aparecen en pantalla entre corchetes cuadrados [ ],
justamente antes de ser obedecidas las instrucciones de esa linea.
CLAVES asociadas: RUN
UNT
UNT( (expresion direccional))
PRINT UNT(&FF66)
Capftulo 8 Pagina 62-
BASIC: Palabras clave
FUNCION: El argumento ha de corresponder a una de las posibles
direcciones de las 'celdillas de memoria'; ie. un numeral en la gama
a 65535 cuyo equivalente en el sistema BINARIO NATURAL (sin signo)
tenga una representacion de 16 bitos. El resultado de la funcion es el
numero entero equivalente en la gama -32768 a +32767.
CLAVES asociadas: INT, FIX, CINT, ROUND
UPPER$
UPPER$(<expresion literal))
PRINT UPPER* <"aiY.strad")
AMSTRflD
FUNCION: El resultado es igual al argumento literal sustituyendo todas
las letras minusculas que aparecen en el argumento por letras mayusculas.
CLAVES asociadas: LOWER$
VAL
VfiUtexpresion literal))
10 A*="7 es mi numero de la suerte"
20 PRINT VOL (ft*)
FUNCION: Extrae el posible dato numerico que haya en el argumento
literal; y que para ser efectivo debe estar colocado al principio del dato
literal. Se usa en la mayorfa de los casos para convertir un dato literal
en un dato de indole numeral.
CLAVES asociadas: STR$
■Capftulo 8 Pagina 63-
BASIC: Palabras clave
VPOS
VPOSd (numeral de cauce))
PRINT VPOS(#0)
FUNCION: El resultado refleja la posicion VERTICAL del cursor de textos
correspondiente al numeral de cauce argumento de la funcion; que es
IMPRESCINDIBLE.
CLAVES asociadas: POS
WAIT
WIT (nuaero de portal), (aascaraH, (inversion)]
WAIT &FF34,20,25
ACCION: Suspende cuaiquier otra operacion haciendo que el sistema
ESPERE hasta que el portal mencionado en el comando, haya un valor
particular dentro de la gama a 255: en realidad, este comando obliga
al BASIC a que entre en un bucle -leera el valor presente en el portal
mencionado, lo OLEara (operacion XOR) por el parametro inversion, y
el resultado intermedio que obtenga lo YLIara (operacion AND) por el
parametro mascara; y continuara repitiendo las operaciones del bucle
HASTA que el resultado final sea distinto de cero.
Si tecleas el ejemplo anterior, no tendras mas remedio que restaurar
el ordenador para poder escapar del bucle.
CLAVES asociadas: INP, OUT
Capftulo 8 Pagina 64-
•
BASIC: Palabras clave
WEND
UB0
10 MODE l:REM BASIC CLOCK TIME ROUTINE
20 INPUT "Pulse la hora actual, minutos, y
segundos (h, m, s) " ;horas, minutos, segundos
30 CLS: datum = INT (TIME/300)
40 WHILE horas<13
50 WHILE minutos (60
60 WHILE tick<60
70 t ick= ( INT (TIME/300) -datum) +segundos
80 LOCATE 70,4
90 PRINT #0, USING "## " ; horas, minutos, t ick
100 WEND
110 tick=0
115 segundos=0
120 minutos=minutos+l
130 GOTO 30
140 WEND
150 minutos=0
160 horas=horas+l
170 WEND
180 horas=l
190 GOTO 40
ACCION: El bucle WHILE/WEND ejecuta reiteradamente una seccion
de programa MIENTRAS que una determinada condicion es cierta. Este
ejemplo usa un bucle WHILE/WEND para mostrar la elegancia de los
programas construidos segun este enfoque. Ahora puedes anadir todo el
conjunto de facetas de un surtido de relojes diferentes. El comando
WEND termina el bucle WHILE.
CLAVES asociadas: WHILE
WHILE
yHILEfaprtfion loqica)
WHILE DfiY <0
ACCION: Un comando WHILE hace que se ejecute repetidamente una
seccion de programa MIENTRAS que sea cierta la condicion mencionada
en el comando. El comando WHILE senala el inicio del bucle, y establece
la condicion. El comando WEND culmina el bucle WHILE.
CLAVES asociadas: WEND
Capitulo 8 Pagina 65 — '
BASIC: Palabras Clave-
L
WIDTH
WIDTH (expresion entera)
WIDTH 86
ACCION: Le dice al BASIC la ANCHURA de la impresora medida en
posiciones de impresion; con lo que el BASIC insertara oportunamente
los retornos de carro necesarios.
CLAVES asociadas: PRINT, POS
WINDOW
WINDOW ft (numeral de cauce), Hizquierda), <derecha),<arriba),<abajo)
10 MODE 1
20 BORDER 6
30 WINDOW 10,30,7, 18
40 PAPER 2: PEN 3
50 CLS
60 PRINT CHR*<143) ;CHR*<242) ; "ESTA ES LA LOCAL I ZAC I ON"
70 PRINT "1,1 EN VENTANA DE TEXTO"
80 GOTO 80
ACCION: Asocia una VENTANA DE TEXTO al cauce mencionado, y marca
los lfmites de la ventana.
CLAVES asociadas: ORIGIN
WINDOW SWAP
WINDOW SWAP (maeral de cauce), fauaeral de cauce)
WINDOW SWAP 0,2
ACCION: Produce un CANJE de ventanas. Por ejemplo, los mensajes
de BASIC enviados por el cauce #0 puede intercambiarse con otra de
las ventanas definidas para resaltar ciertos aspectos durante el desarrollo
de los programas y la operacion.
Capftulo 8 Pagina 66 —
BASIC: Palabras clave
CLAVES asociadas: WINDOW, PEN, PAPER, TAG
WRITE
WITE HMmueral de cauce>,H<lista escrita)]
WRITE #2, "H0LA",4, 5
"H0LA",4, 5
ACCION: A traves del cauce mencionado, ESCRIBE la lista de datos
mencionada en la instruccion, escribiendo exactamente los separadores
y comillas que aparecen en la lista.
CLAVES asociadas: PRINT
XPOS
XPOS
PRINT XPOS
FUNCION: Refleja la posicion HORIZONTAL del cursor de graficos.
CLAVES asociadas: YPOS, MOVE, MOVER, ORIGIN
YPOS
YPOS
PRINT YPOS
FUNCION: Refleja la posicion VERTICAL del cursor de graficos.
CLAVES asociadas: XPOS, MOVE, MOVER, ORIGIN
Capftulo 8 Pagina 67-
BASIC: Palabras clave
ZONE
ZONE (expresion entera)
10 PRINT 1,2,3
20 ZONE 19
30 PRINT 4,5,6
ACCION: Cambia la anchura de las ZONAS prescritas en pantalla y
aprovechadas mediante el signo , al exponer datos en pantalla; cambiando
el valor prescrito al arranque de 13 posiciones de anchura de zona, al
valor mencionado en el comando, dentro de la gama 1 a 255.
Se restauran las condiciones iniciales con los comandos NEW, LOAD,
CHAIN y RUN "nombre de fichero".
CLAVES asociao. ~: PRINT, WIDTH
Capftulo 8 Pagina 68-
BASIC: Paktbras Clave
PRINT
PRINKI (numeral de cauce),]C<lista de datos)] [clausula aascara>][{separador>]
(lista de datos) es {expresion) [(separador) (dato a exponer) ]f
(dato a exponer) es {expresion)
o bien
SPC( (expresion entera))
Tfffi(<expresion entera))
Para sacar infortacibn por el cauce de grabacibn en cassette.
10 OPENOUT "DATA"
20 PRINT #9, "Hola"
30 CLOSEOUT
Para sacar infonucibn por el cauce de iapresibn
10 BOBSSALfiRY =23*PI
20 PRINT #8, USING "####.##" ;BOBSSALARY
30 PRINT #0, BOBSSfiLARY
RUN
72256.6311
Ready
Mientras, en la iapresora 1
72256. 63
ACCION: El comando PRINT hace que el sistema EXPONGA los datos a
traves del CAUCE mencionado.
Cuando se usan separadores el BASIC los expone en formato 'libre 1 , donde
una coma a continuacion del dato a exponer hara que se coloque al
comienzo de la siguiente ZONA; mientras que un punto y coma los pondra
a continuacion del dato inmediatamente anterior. (Si el dato es numerico
sacara un bianco).
La clausula USING permite especificar una 'norma' o 'mascara' que
conforme la apariencia de los datos expuestos; y ha de ser un literal,
variable o constante, en el que solo aparezcan los sfmbolos especificados
en la tabla anexa.
La clausula SPC (n) hace que se inserten n ESPACIOS en bianco antes
de exponer el siguiente dato, y siendo n un numeral entero dentro de
la gama a 255. (Si es negativo se toma el valor 0), y si es mas ancho
que la anchura del periferico correspondiente (pantalla, impresora, etc.),
se reduce al correspondiente valor congruente con dicha anchura. Observa
que no tiene que delimitarse esta clausula ni con coma ni con punto y
coma; se supone en todo momento que hay un punto y coma.
Capftulo 8 Pagina 69—
BASIC: Palabras Clave
La clausula TAB (nn) desplaza el cursor hasta la posicion horizontal
indicada por nn, que ha de estar en la gama a 255. (Si es negativo se
supone la posicion 1, y si sobrepasa la anchura del periferico pertinente
se reduce al numero congruente con dicha anchura.
Si la posicion nn exigida es igual o sobrepasa la posicion corriente del
mecanismo expositor (cursor, cabezal, etc.), se insertan los espacios
convenientes para situarlo en la posicion exigida. Pero si es menor que
la posicion presente, se enviara un 'retorno de carro 1 seguido por los
espacios convenientes para situarlo en la posicion exigida, con lo que
aparecera en la siguiente lfnea. Tampoco es necesario terminar esta
clausula con un separador, ya que se supone en todo momento que hay
un punto y coma.
Capftulo 8 Pagina 70-
BASIC: Palabras clave ■
USING "<Literal con f ormador>"
Sfmbolos para datos numericos
Especificador ^f CaraCtereS Definition
^ Posibles en campos
//
Ejemplo
**
$$
**<
+ + + +
1
1
Campo numerico
####
1
Punto decimal
#.#
1
Expone signo delantero
o trasero.
Un numero positivo
+//#
tendra +
###+
Los rwimeros negativos
no pueden tener -
delante
1
Signo trasero. Expone -
si negativo,
si no bianco
##.##-
2
2
Asterfscos delante
**###.##
1
2
Signo dolar flotante
colocado antes del
dfgito delantero
$$##.##
2
3
Relleno de aster iscos
y dolar flotante
«$#.##
1
1
Usa coma cada tres
dfgitos (solo a la
izquierda del punto
decimal)
##,###,#
4
Formato exponencial.
Se ajusta el numero
de modo que el dfgito
delantero sea
#,##+ + +
Para datos literales
/ /
no-cero.
Solo el primer
caracter.
Campo de longitud
constante e igual a
nn+2
Campo de longitud
variable
Capitulo 8 Pagina 71 — *
PROGRAMACION AVANZADA
9. Informacion de
programacion avanzada
Temas tratados en este capftulo
* Posiciones 'legales' de texto
* Caracteres de control
* El sistema operativo
* Estructura de interrupciones
9.1 Ubicacion del cursor y codigos de control
En diversidad de programas de aplicacion, el cursor de textos puede
situarse fuera de la ventana vigente en pantalla. Diferentes operaciones
fuerzan a que el cursor se situe en una posicion 'legal' antes de que puedan
ser llevadas a cabo; y son:
- la exposicion de un caracter
- mostrando el cursor de texto (el 'rectangulito')
- obedecer los codigos de control senalados con un asteri'sco
en la lista presentada en las paginas siguientes.
El metodo para forzar al cursor a situarse en una posicion legal, es el
siguiente:
a. Si el cursor esta a la derecha del margen derecho, se desplaza a la
columna extremo-izquierda de la li'nea inmediatamente inferior.
b. Si el cursor esta a la izquierda del margen izquierdo, se desplaza
a la columna extremo-derecha de la li'nea inmediatamente superior.
c. Si el cursor esta por encima del margen horizontal superior, la ventana
se desplaza (se despliega) una li'nea hacia abajo, y el cursor se situa en
la primera li'nea superior de la ventana.
d. Si el cursor esta debajo del margen inferior, la ventana se desplaza
(se despliega) una li'nea hacia arriba, y el cursor se situa en la li'nea mas
inferior de la ventana.
Las comprobaciones y operaciones se efectuan ademas en el orden en
que la hemos mencionado. Las posiciones ilegales del cursor puede ser
o negativas cuando esta situado fuera de la ventana por la izquierda
o por arriba.
Los codigos ASCII decimales de los caracteres (Apendice III) que caen
dentro de la gama a 31, no muestran ningun si'mbolo al ser enviados
a la pantalla de textos (y pueden hacer que el sistema operativo se quede
'colgado' si no se usan juiciosamente) sino que son interpretados como
CODIGOS DE CONTROL (y llamados tambien 'caracteres motivos' para
distinguirlos de los 'visivos').
Capftulo 9 Pagina 1
PROGRAMACION AVANZADA
Algunos de ellos, y especialmente el de codigo decimal 27, hace que los
caracteres enviados a continuacion ESCAPEN del convenio habitual de
significados. Y pueden usarse como parametros de la accion ejercida por
ese 'codigo de control'.
Cuando se envian a la pantalla de graficos estos caracteres de control,
mostraran un si'mbolo relacionado con su funcion cuando son impuestos
por medio del teclado (e.g. CTRL y G), pero solamente ejerceran el
control que tienen asociado, si son enviados usando directamente el
comando correspondiente (v.g. PRINT CHR$(&07). (Vease la descripcion
de la palabra reservada TAG en el capftulo 8).
Los codigos senalados con un asterisco en la lista siguiente, fuerzan al
cursor a situarse en una posicion legal en la corriente ventana, antes
de que sean obedecidos; pero pueden dejar el cursor en una posicion ilegal.
Los codigos y su significado se describen primero por su valor en notacion
hexadecimal (&XX) y luego por el equivalente decimal.
Comandos adicionales mediante codigos de control: no accesibles
generalmente vfa el teclado, usando la tecla CTRL.
Codigo Nombre Parametro
600 NUL
601 1 SOH
602 2 STX
603 3 ETX
0..255
604 4 EOT
605 5 ENQ
606 6 ACK
607 7 BEL
Capftulo 9 Pagina 2
0..2
0..255
Significado
Ningun efecto. Se ignora.
Expone el si'mbolo correspondiente
al valor del parametro. Permite
mostrar los si'mbolos dentro de
la gama a 31.
Vuelve invisible el cursor de texto.
Vuelve visible el cursor de texto.
Retiene internamente la exposicion
del cursor, y solo lo libera cuando
esta esperando un ingreso por
teclado.
Fija modo de pantalla, congruente
con el parametro MOD 4. Equivale
al comando MODE.
Envia el caracter correspondiente
al parametro a la posicion del
cursor de graficos.
Activa una pantalla de texto
(vease &15, NAK).
Produce pitido. Observa que con
esto se cierran y vaci'an los canales
de sonido.
PROGRAMACION AVANZADA
Codigo Nombre Parametro
608 8 * BS
609 9 * TAB
&0A 10 * LF
&0B 11 * VT
&0C 12 * FF
&0D 13 * CR
&0E m- * SO
&0F 15 SI
&10 16 * DLE
&11 17 * DC1
0..15
0..15
&12 18 * DC2
&13 19 * DC3
Significado
Retrocede el cursor una posicion.
Avanza el cursor una posicion.
Desplaza el cursor avanzando
una linea.
Desplaza el cursor una linea hacia
arriba.
Limpia la ventana de texto y
coloca el cursor en la esquina
superior izquierda. Equivalente
al comando CLS.
Retorno de carro. Desplaza el
cursor al borde izquierdo de la
ventana dentro de la linea vigente.
Fija el tinte del papel, al valor
del parametro MOD 16. Equivalente
al comando PAPER.
Fija la tinta de la pluma, al valor
del parametro MOD 16. Equivalente
al comando PEN.
Suprime el caracter corriente,
y rellena esa posicion con el valor
corriente del tinte del papel.
Limpia desde el borde izquierdo
de la ventana hasta -e incluyendo-
la posicion corriente del cursor.
Las posiciones afectadas se
rellenan con el valor corriente
del tinte del papel.
Limpia desde -e incluyendo- la
posicion corriente del cursor hasta
el borde derecho de la ventana.
Las posiciones afectadas se
rellenan con el valor corriente
para el tinte del papel.
Limpia desde el comienzo de
la pantalla hasta -e incluyendo-
la posicion corriente del cursor.
Las posiciones afectadas se
rellenan con el valor corriente
para el tinte del papel.
Capftulo 9 Pagina 3
PROGRAMACION AVANZADA
Codigo Nombre Parametro
&14 20 * DC4
&15 21 NAK
&16 22 SYN
&17 23 ETB
&18 24
&19 25
CAN
EM
&1A 26
SUB
0..1
0..3
0..255
0..255
0..255
0..255
0..255
0..255
0..255
0..255
0..255
1..80
1..80
1..25
1..25
Significado
Limpia desde -e incluyendo- la
posicion corriente del cursor hasta
el fin de la ventana. Las posiciones
afectadas se rellenan con el valor
corriente para el tinte del papel.
Desactiva la pantalla de texto.
Por tanto, no reaccionara a nada
de lo que se le envia hasta despues
de recibir el codigo ACK (&06).
Parametro MOD 2
activa(l)/desactiva(0) la opcion
de transparencia.
Parametro MOD k
fija la modalidad de graficos:
1 ' XOR"'
2 ' AND'"
3 ' OR'"
Intercambia la tinta del papel
y pluma.
Vease la forma de definir TIPOS
de caracteres por el usuario.
Equivale al comando SYMBOL.
Exige 9 parametros, el primer
parametro identifica el numero
del caracter que se redefine.
Los siguientes 8 parametros
especifican cada uno de los 8
TRAZOS del caracter al exponerlo
en pantalla. Y se comienza a
partir de la esquina superior
izquierda, desplazandose hacia
la derecha hasta completar un
trazo, y luego continuando con
los trazos inferiores, hasta terminar
el ultimo trazo en la esquina
inferior derecha del caracter.
Define y situa una ventana en
la pantalla. Equivale al comando
WINDOW.
Los dos primeros parametros
especifican el costado izquierdo
y derecho de la ventana,
correspondiendo el valor mas
pequeno al costado izquierdo,
y el mayor al derecho.
Capftulo 9 Pagina *
PROGRAMACION AVANZADA
Codigo
Nombre
Paramero
&1B 27
&1C 28
ESC
FS
&1D 29
GS
0..15
0..31
0..31
0..31
0..31
Significado
Los segundos dos parametros
especifican el largero superior
e inferior de la ventana -el valor
mas pequeno se toma como largero
superior, el mayor como largero
inferior.
Ningun efecto. Se ignora.
Elige como tinta una pareja de
colores. Equivalente al comando
INK. El primer parametro (MOD
16) especifica el numero de tinta.
Los siguientes dos (MOD 32) los
colores elegidos.
Elige para el borde un par de
colores. Equivalente al comando
BORDER. Los dos parametros
(MOD 32) especifican los dos
colores.
Desplaza el cursor a la esquina
superior izquierda de la ventana.
Ubica el cursor en una determinada
posicion de la ventana corriente.
Equivalente al comando LOCATE.
El primer parametro sefiala la
columna; el segundo la linea.
9.2 El sistema operativo
Las 'labores domesticas' del CPC464 son llevadas a cabo por un conjunto
de programas organizados y grabados permanentemente en la memoria,
que se conocen con el nombre de sistema operativo del ordenador. El
sistema operativo es como un 'director de orquesta', o mas bien debe
verse como un 'guardia de trafico' entre los diversos circuitos del
ordenador, incluyendo las entradas y salidas.
Primordialmente, es el intermediario entre los circuitos electronicos y
el interpretador BASIC. Asi' por ejemplo, cuando en tu programa pides
que seponga en marcha el parpadeo de texto, el BASIC interpreta tus
instrucciones y pasa los parametros correspondientes al sistema operativo
que se encarga realmente de la tarea. Por lo tanto, el primero -el BASIC-
determina lo que se requiere, y el segundo -el sistema operativo- lleva
a cabo la realizacion de las acciones subsecuentes.
&1E 30
&1F 31
RS
US
1..80
1..25
Capftulo 9 Pagina 5
PROGRAMACION AVANZADA
El sistema operativo de las maquinas modernas se conoce tambien,
generalmente, con el termino ingles de 'firmware', para indicar que esta
a medio camino (firme) entre el hardware (duro) y el software (blando).
Y esta constituido por las rutinas que escritas en codigo maquina y
grabadas de manera permanente e indeleble en la memoria, son reclamadas
por el interpretador BASIC para que lleven a cabo las acciones conducentes
a la cumplimentacion de las instrucciones y comandos que le has mandado.
Aunque es practicamente (casi) imposible que se quede 'colgado' el
ordenador CPC464 cuando estas ejecutando un programa escrito en BASIC,
a no ser que utilices mal el comando ON BREAK GOSUB, sf es
relativamente facil que causes un 'gripado de meninges' que solo pueda
resolverse mediante una restauracion completa de las condiciones iniciales,
con la subsecuente perdida de todo el programa, datos, etc., si te embarcas
en la excitante aventura del codigo maquina. (Si no quieres emplear esos
terminos tan rebuscados, df simplemente que son CIRCUITOS electronicos
donde radica toda la "mollera congenita" de la maquina).
Si estas tentado de ir 'hincando' valores por toda la memoria, mediante
el comando POKE, y 'cediendo' el control de la maquina, usando el
comando CALL, por donde se te ocurra, guarda primero tu programa
en le cassette, y habiendo sacado un listado, antes de hacerlo; o puede
que tengas que arrepentirte despues. El amplio y potente sistema operativo
del CPC464 se describe en la' "Gufa para el Usuario Avanzado", y se sale
del ambito de esta gufa para el usuario principiante.
9.3 Interrupciones
El CPCf64 aprovecha ampliamente la estructura de interrupciones que
posee el microprocesador Z80, para disponer de un sistema operativo
que incluye varias facultades de multitarea, de las que has podido apreciar
los comandos AFTER y EVERY, descritos en el capitulo 8. La prioridad
de los 'cronometradores' que generan regularmente senales de interrupcion,
es:
Ruptura ESC ESC
Temporizador 3
Temporizador 2 (y los tres canales de sonido)
Temporizador 1
Temporizador
Debieras incluir el tratamiento por interrupciones, despues de considerar
las consecuencias sobre los posibles estados intermedios de las variables
en el momento de la interrupcion. La propia subrutina que atienda las
interrupciones, debe evitar interacciones no deseables con el estado de
las variables en el programa principal.
Capitulo 9 Pagina 6
PROGRAMACION AVANZADA
Los canales de sonido disponen de circuitos para interrupciones,
independientes y de igual prioridad. Una vez que cualquier canal ha
suscitado una interrupcion, no se ve interrumpido por ningun otro;
permitiendo asi' que los comandos de sonido compartan las variables con
inmunidad ante los efectos mencionados mas arriba por la estructura
de interrupciones de los temporizadores.
Cuando en el programa se suscita una interrupcion para un canal de sonido,
este se tramitara inmediatamente si en el canal el 'chorro de notas 1
pendientes no esta completo; y en caso contrario, se tramitara dicha
interrupcion cuando arranque la siguiente nota y haya, por tanto, sitio^
para poner otra al final del 'chorro'. Como al tramitarse la interrupcion
se inhibe el funcionamiento de los circuitos generadores de interrupciones,
la subrutina debe, antes de terminar, quitar esa inhibicion si se desea
seguir recibiendo las posibles senales de interrupcion posteriores.
El intento de enviar un sonido a un canal, o la comprobacion del estado
de un canal, tambien inhiben el funcionamiento de los generadores de
senales de interrupcion.
La prioridad de la secuencia ESC ESC, sobre todas las otras posibles
senales de interrupcion, asegura que la operacion del programa BASIC
puede ser suspendida temporalmente sin perdida del programa, siempre
y cuando no se hayan efectuado acciones auxiliares para cerciorarse de
la integridad del programa mediante una de las diversas tecnicas de
proteccion.
9.3 Ensamblador AMSOFT
Con el fin de programar frecuentemente en codigo maquina, sera necesario
usar el ensamblador. El ensamblador AMSOFT consta de un ensamblador
reubicable del procesador Z80, junto con editor, desensamblador y
monitor.
Capftulo 9 Pagina 7-
PROGRESANDO
10. Posibilidades de inter rupc ion
Temas comentados en este capftulo:
* DESPUES DE equis tiempo... AFTER
* CADA equis tiempo... EVERY
* ,-Cuanto tiempo QUEDA para...? REMAIN
* Los cronometradores
Ya habras observado una de las mayores innovaciones del CPC464. Es
su habilidad -unica en el mercado- para tratar interrupciones dentro de
los programas BASIC; lo que significa que BASIC AMSTRAD es capaz
de efectuar varias tareas simultanea y separadamente dentro de un mismo
programa. Esta facultad de los ordenadores se denomina algunas veces
como 'multitarea', y se consigue mediante los comandos AFTER y EVERY.
Esa misma facultad tambien queda demostrada claramente en la manera
en que se maneja la generacion y emision de sonidos por los tres canales
dispnibles, permitiendo construir CHORROS DE NOTAS EN ESPERA,
y ACORDES ENTRE CANALES.
Todo lo referente a los intervalos de tiempo en el CPC464 esta gobernado
por un 'reloj patron' consistente en un circuito electronico de precision
que incorpora un cristal de cuarzo, y de diversos circuitos electronicos
que dentro del ordenador se preocupa de temporizar y sincronizar^ las
labores y tareas que realiza el ordenador, tales como la generacion de
senales de barrido para el monitor, y el envio constante de impulsos hacia
el microprocesador, etc. Siempre que hay un circuito que desempena
una funcion relacionada con el tiempo, esta en estrecha correlacion con
las senales procedentes del reloj maestro.
El avance en programacion reside en los comandos AFTER y EVERY,
que para mantener el enfoque comprensible del BASIC AMSTRAD con
respecto a sus usuarios, hacen precisamente lo que dicen (y los que no
sabeis ingles, volver a mirar el epigrafe de este capftulo para poneros
en igualdad de condiciones inmediatamente).
10.1 AFTER DESPUES DE
El comando AFTER se incluye en un programa BASIC para conseguir
que se ejecuten determinadas tareas DESPUES DE transcurrido un
determinado tiempo desde la ultima vez que se ejecutaron. En el CPC464
se dispone de cuatro 'cronometradores', cada uno de los cuales puede
tener asignado que transcurrido un determinado tiempo, obligue al
programa a hacer un alto en sus operaciones y pasar a ejecutar una tarea
predeterminada. La sintaxis para esta instruccion es:
-Capftulo 10 Pagina 1
PROGRESANDO
AFTER (expresion entera> t, texpresion entera)] GOSUB <nu»ero de linea)
El primero de los parametros enteros, especifica CADA cuanto tiempo
tiene que efectuarse la tarea expresada por un 'parrafo' del programa
que comienza en el numero de linea mencionado en la instruccion. Este
intervale- de tiempo se mide en 1/50 de segundo.
El segundo parametro entero especifica cual de los cuatro posibles
cronometradores es el encargado de llevar la cuenta del tiempo
transcurrido. Por lo tanto, este parametro debe estar en la gama a 3;
y si se omite, se presupone el cronometrador 0.
Cuando ha transcurrido el intervalo especificado, se CEDE el control
de la maquina a la subrutina, de la misma manera que cuando se ejecuta
un comando GOSUB en el programa. Como la subrutina terminara con
un comando RETURN, hara que el control VUELVA al programa principal
que continuara ejecutandose justo en el punto donde se vio interrumpido.
Los cronometradores (temporizadores) tienen diferentes prioridades para
sus senales de interrupcion. El temporizador 3 tiene la maxima perioridad
y el temporizador la minima.
En cualquier punto del programa se puede incluir el comando AFTER,
con lo que se 'arredran' (ponen a cero) los cronometros mencionados en
la instruccion, y comienzan su labor a partir de ese mismo instante.
Como los temporizadores son los mismos que los usados en el comando
EVERY, un comando AFTER anula cualquier comando EVERY anterior
que use el mismo numero de temporizador; y viceversa.
Veamos un ejemplo:
10 MODE 1:X=0
20 AFTER 45 GOSUB 100
30 AFTER 100, 1 BOSUB 200
40 PRINT "AMSOFT"
50 WHILE X<100
60 LOCATE #1,30, l: PRINT #1,X:X=X+1
70 WEND
80 END
100 PRINT "perifericos"
110 RETURN
200 PRINT "y software"
210 RETURN
Capftulo 10 Pagina 2-
PROGRESANDO
Observa el uso de dos CAUCES de comunicacion con la pantalla, lo que
implica dos ventanas; lo que permite a las subrutinas que tratan las
interrupciones exponer mensajes independientemente de los que exponen
el programa 'principal' (liheas 50 a 80).
DESPUES de haber transcurrido el tiempo preestablecido en una u otra
linea del programa, este se DESVIA hacia la subrutina mencionada en
la instruccion y efectua la tarea descrita en ese 'parrafo'.
10.2 EVERY CADA
El comando EVERY hace que CADA cierto tiempo, el programa suspenda
la operacion que este ejecutando y se DESV1E para efectuar una
determinada tarea, y que una vez terminada VENGA a continuar la que
estaba haciendo. Se dispone ademas de cuatro cronometros
(temporizadores), a cada uno de los cuales se le puede encargar de
interrumpir la ejecucion del programa principal. La sintaxis de este
comando es:
EVERY {expresion entera) C, {expresion enteral] GOSUB (nuaero de linea)
El primer parametro entero, especifica el intervalo de tiempo entre dos
'desvios' sucesivos al parrafo del programa que comienza en el numero
de linea citado en la instruccion. El tiempo se mide en 1/50 de segundo.
El segundo parametro entero, especifica cual de los cuatro posibles
temporizadores es el encargado de generar las senales de interrupcion.
El valor de este parametro debe estar en la gama a 3; y si se omite,
se adopta el temporizador 0.
Cuando ha transcurrido el intervalo de tiempo especificado,
automaticamente se produce el desvio a la subrutina correspondiente,
igual que ocurre cuando se incluye un comando GOSUB en un punto del
programa. Los temporizadores tienen prioridades diferentes en cuanto
a sus senales de interrupcion. El temporizador 3 tiene la maxima prioridad,
y el temporizador la minima.
10 MODE l:X=0
20 P200=0: EVERY 10 GOSUB 100
30 P200=0:EVERY 12,1 BOSUB 200
40 PRINT "AMS0FT"
50 WHILE X<200
60 LOCATE #1,30, l: PRINT #1,X:X=X+1
70 WEND
80 LOCATE 1,20: END
100 DI:PEN P100:L0CATE 1,2: PRINT "peri fericos" :EI
105 IF PI 00=0 THEN PI 00=1 ELSE PI 00=0
■Capftulo 10 Pagina 3-
PROGRESANDO
110 RETURN
200 PEN P200: LOCATE 1,3: PRINT "y software"
205 IF P200=2 THEN P200=3 ELSE P200=2
210 RETURN
OBSERVA el uso de los comando DI y EI, que 'inhiben' la tramitacion
de otras posibles interrupciones antes de empezar a ejecutar las tareas
propias, y quitan esa inhibicion una vez que han terminado, respectivamente.
Eso tiene como efecto demorar la tramitacion de las interrupciones
suscitadas por el temporizador 1 (que tienen mayor prioridad), durante
el tiempo en que se esta tramitando la interrupcion suscitada por el
temporizador 0. Por lo tanto, impidiendo que los parametros de ubicacion
del cursor o de color de pluma usados en la rutina 100 a 110, se vean
alterados por el programa principal.
10.3 REMAIN QUEDA
Esta funcion REMAIN entrega como resultado el tiempo que QUEDA ^
por transcurrir en el temporizador dado por el argumento de la funcion.
Al mismo tiempo inhibe la generacion de senales de interrupcion por
parte de ese temporizador, y entrega el valor si el temporizador esta
previamente inhibido. Su sintaxis es:
REMAIN Uexpresi on entera))
Capitulo 10 Pagina 4-
CAPACIDAD DEL ORDENADOR
Apendice I:
El Arte de lo posible
El recien Uegado a la informatica, comienza por establecer algunos puntos
de referenda que le ayuden a conseguir una panoramica sobre las
capacidades y limitaciones del ordenador. Esta seccion esta pensada para
darle una gufa muy general sobre lo que sucede y su porque.
Fuera el hechizo!
Y aunque la unica razon para comprar tu CPC464 haya sido el aprovechar
los imaginativos juegos disponibles para funcionar en el 'cacharro', es
probable que todavia te estes preguntando sobre diversos aspectos de
los ordenadores que vienen bajo el termino generico de CIRCUITOS (que
como son "duros" de alterar, los ingleses lo llaman 'hardware 1 .
Esos aparatos que recoges y te llevas a casa: el ordenador con su teclado,
el monitor, los cables de conexion, etc. son precisamente la 'circuitalia'.
De hecho, es todo lo que no es especi'ficamente la 'programalia', que
como es 'bianco', y por tan to facilmente alterable, los ingleses lo llaman
'software'.
Independientemente de los nombres usados, la unica innovacion que
presentah los ordenadores es: jjlos PROGRAMAS estan imbuidos en los
CIRCUITOS!!
Ciertas facetas en la manera que funciona un ordenador, estan producidas
merced a los circuitos: cosas como la imagen policroma de un aparato
de TV o de un monitor; y es mision de los programas haCer uso de esta
capacidad de los circuitos para producir caracteres y figuras en la pantalla
especi'ficamente disenados. Los circuitos controlan realmente el haz de
electrones proyectado sobre la superficie electroluminiscente interna
de la pantalla de un tubo de television y hacerla que se ilumine. Los
programas anaden el orden y la inteligencia para comunicar a los circuitos
cuando y donde tienen que actuar. Anaden temporizacion, control y
procesado consecutivo para conseguir el efecto del despegue de un avion,
o de algo mas vulgar como una carta apareciendo en pantalla cuando
tipografi'as en el teclado.
iQue hace que un ordenador sea mejor que otro?
Los circuitos sin programas no valen nada. Los programas sin los circuitos
ni siquiera tienen donde residir; el valor del ordenador comienza cuando
se reunen ambos para efectuar diversas tareas. Hay algunas consideraciones
fundamentales que pueden emplearse para graduar el rendimiento de ambos
programas y circuitos integrados en un sistema.
Apendice I Pagina 1 — '
CAPACIDAD DEL ORDENADOR
Los puntos de referenda generalmente aceptados para los ordenadores
personales, son en estos momentos:
1. La resolucion en pantalla: la mota mas pequena que todavia es
discernible.
Es una combinacion de factores, incluyendo el numero de colores diferentes
manejables por el operador, el numero de areas distintas que pueden
diferenciarse en la pantalla (las 'motas'). El numero de caracteres
tipograficos que pueden mostrarse en una sola area de pantalla.
Hallaras que tu CPC464 compara muy favorablemente en todos estos
aspectos con cualquier maquina de precio similar.
2. El interpretador BASIC.
Virtualmente todo ordenador casero incorpora un interpretador BASIC
que permite al usuario comenzar a crear programas y a usar las facultades
de los circuitos. El lenguaje de programacion incorporado (BASIC) que
se suministra con tu maquina, es por si' mismo un programa -un
inmensamente complicado e intrincado programa que ha evolucionado
durante un millon de hombres/anos de experiencia desde que se 'invento'
en los Estados Unidos.
Este 'codigo de instrucciones simbolicas, de proposito general, para
principiantes' es con mucho, el lenguaje informatico mas ampliamente
usado en el mundo, y como cualquier otro lenguaje se presenta con una
variedad de 'dialectos' locales. La version en el CPC46^ es uno de los
dialectos mas ampliamente compatibles, y podra ejecutar muchos de los
programas BASIC comunes y escritos para operar con el sistema operativo
de disco CP/M. Es una implementacion de BASIC muy rapida -lo que
en otras palabras significa que efectua sus calculos rapidamente- y mientras
puede que no te concierna demasiado que un ordenador puede tardar 0,05
segundos en multiplicar 3 por 5, y mostrar el resultado; otro ordenador
puede tardar 0,075 segundos en hacer lo mismo; y cuando un programa
que dibuja modelos graficos en la pantalla, puede exigir muchos millares
de simples calculos relativos, la diferencia entre 0,05 segundos y 0,075
segundos en una operacion llega a acumularse a una diferencia en tiempo
total muy considerable.
Frecuentemente, oiras que se usa el termino 'codigo maquina'. Codigo
maquina es una forma basta de codigo de instrucciones que pueden pasarse
al microprocesador. El tarda menos tiempo en interpretar lo que se le
ha pedido hacer, y se las arregla para producir el resultado de 5 a 15
veces mas rapidamente que una operacion equivalente que tuviera que
pasar a traves del interpretador BASIC. Pero se tarda de 5 a 50 veces
mas escribir un programa equivalente en codigo maquina comparado
con Uevar a cabo la misma tarea global usando BASIC.
Apendice I Pagina 2
CAPACIDAD DEL ORDENADOR-
El BASIC en tu ordenador AMSTRAD, esta entre los mas rapidos, mas
potentes y completos, que puedas encontrar en cualquier ordenador personal,
e incorpora muchas muchas facilidades para que el programador BASIC
experto venza parte de la inherente dificultad de un interprete de 'lenguaje
de alto nivel' para efectuar sorprendentes efectos dinamicos, visuales
y musicales.
3. Ampliando y completando
La mayori'a de los ordenadores prestan atencion a la necesidad de anadir
equipos y artefactos adicionales: impresoras, 'joysticks' para juegos,
ductoras de disco. Paradojicamente, algunos de los ordenadores personales
de mas exito exigen la incorporacion de unidades adicionales conocidas
como 'acopladores e interfaces' antes incluso de que pueda conectarse
una simple impresora o un controlador de juegos.
El comprador no siempre considera anticipadamente sus necesidades en
el futuro, porque de lo contrario, una maquina que incorporara
adecuadamente el acoplador necesario para una impresora compatible
con una norma standard como Centronics, y ademas lo necesario para
el control de juegos, puede que realmente sea mas barato a la iarga.
El ordenador CPC464 tiene incorporado un 'portal de salida' para impresora
Centronics;, facilidades para hasta dos joysticks de juegos; una salida
de sonido estereo; y un completo bus de interconexion que puede usarse
para equipos de almacenamiento en disco, memorias preprogramadas
adicionales, impresoras segun la norma RS232, etc.
Una memoria preprogramada que solo permite operaciones de lectura.
Memoria de Solo Lectura (Read Only Memory) es un circuito integrado
en el que esta grabada informacion concerniente a un programa. El BASIC
que se suministra con tu ordenador, esta grabado en uno de esos circuitos,
y es posible que otros programas sean suministrados asf, ya sea para
suplementar el programa incorporado, o sustituir completamente sus
funciones por otras.
Apendice I Pagina 3-
CAPACIDAD DEL ORDENADOR
Las consolas de juegos en TV, usan programas grabados en 'cartuchos'.
Y esos cartuchos son en esencia, tambien circuitos de memorias
preprogramadas, alojadas en una carcasa plastica y con una forma u otra
de ser enchufado rapidamente para permitir meterlo y sacarlo muy
facilmente. Por lo tanto, esta clase de circuitos memorizadores proveen
la misma funcion que las cassettes en las que depositas tus programas.
Sin embargo, tienen la ventaja de que cargan la informacion en la memoria
del ordenador de una forma virtualmente instantanea en comparacion
con los varios minutos que tarda un programa largo en ser transferido
de la cassette al ordenador; y por tanto, su mayor ventaja es una de
absoluta conveniencia, que hay que examinar contra su total imposibilidad
de ser usadas para almacenar informacion que saques de tu ordenador
y que puedas llevar a otro ordenador de la misma manera que haces con
el cassette Datacorder de tu CPC464.
Por tanto, con el bus de interconexion, tienes garantizado que tu ordenador
podra ir incorporando la mayoria de los desarrollos que en programacion
y electronica se hagan, y el sistema CPC464 tiene las posibilidades de
ampliacion muy completas y extremadamente documentadas.
4. Sonidos
Las posibilidades sonoras de un ordenador determinan si suena o no como
moscardones dentro de un bote de hojalata, o puede producir una
reproduccion aceptable de un instrumento musical electronico.
El ordenador CPC464 usa un generador de sonidos con 3 canales y 8
octavas, que puede producir una calidad musical muy aceptable, con
control completo sobre las envolventes de volumen y de tono. Ademas,
el sonido esta dividido segun una configuracion estereo, donde uno de
los canales corresponde a la salida izquierda y el otro canal a la derecha,
con el tercero situado en el medio.
Eso ofrece un panorama considerable para escribir programas que repiquen
graficamente en la pantalla los efectos sonoros para acompanar el
movimiento en los juegos tipicos modernos.
Al final, tu tomaras tu decision sobre cual de estas facetas es mas
importante en tu caso. Esperemos que ensayes todas ellas para sacar
el maximo provecho de tu ordenador.
^Por que no puede?
Con toda la potencia de la moderna tecnologia, los usuarios se preguntan
a menudo por que incluso una maquina tan avanzada como el CPC^64,
es aparentemente incapaz de mostrar la clase de imagenes vistas en
cualquier aparato de television.
L
Apendice I Pagina *
CAPACIDAD DEL ORDENADOR
^Por que, por ejemplo, no puede un ordenador animar una figura de una
persona paseando a traves de la pantalla en una forma natural? ^Por que
todos los ordenadores representan el movimiento con figuras que parecen
hechas con cerillas?
La respuesta aunque compleja, es simple. No debes ser persuadido a creer
que la imagen producida de tu ordenador tiene algo de la argucia empleada
en las imagenes de television. La imagen de television usa informacion
y electronica de tipo continuo, con la que se puede describir una gama
virtualmente infinita de grados entre los extremos de luz y oscuridad
pasando por todos los colores del spectro. Este proceso significa que en
terminos de medida de la informacion (y la unidad de medida es el bitio)
la imagen de un televisor requeriria del orden de 20 veces mas memoria
que las imagenes que la requerida para la imagen producida por un
ordenador personal. Y eso implica pasar de memorias en Kilobitios a
Megabitios. Y eso es solo parte del problema, dado que para dar
movimiento a esa imagen requiere que esa enorme cantidad de memoria
sea procesada a elevada velocidad (alrededor de 50 veces por segundo
toda). Puede hac'erse, pero solo con maquinas que cuestan alrededor de
mil veces mas que un ordenador personal como menos y en este momento.
Hasta que el coste de las memorias de alta velocidad disminuya
impresionantemente (lo que sucedera sin ninguna duda), los ordenadores
pequenos tienen que apanarselas con una relativamente pequena cantidad
de memoria para controlar la imagen en pantalla, lo que resulta en menor
resolucion y movimientos espasmodicos, un diseno cuidadoso de los circuitos
y una buena programacion tienen un largo camino para aprovechar lo
mejor en esta situacion, pero todavia estan lejos los ordenadores baratos
que puedan reproducir movimientos armoniosos e imagenes naturales de
la misma manera comparable incluso a una pelicula de dibujos animados.
Apendice I Pagina 5
CAPACIDAD DEL ORDENADOR-
^Por que no puedes simplemente sentarte al ordenador y teclear una
pagina de simple texto en la maquina?
Tampoco te confunda el hecho que el ordenador parece una maquina de
escribir con una pantalla en lugar de papel. La pantalla no es un simple
papel 'electronico', es en realidad un monitor que con el teclado forma
la consola, que es el medio de comunicarte con los interpretadores de
programas o con los propios programas que ocupan la memoria de la
maquina. Hasta que le digas lo contrario, el ordenador examinara e
interpretara todos los caracteres procedentes del teclado como comandos
o instrucciones. Y en la mayoria de los ordenadores, simplemente los
'escuchara' y repicara en la pantalla, hasta que pulses la tecla que le
indica VALE, momento en que examinara lo que le has tecleado, y si
no tiene sentido para el programa que gobierna su operacion, rechazara
lo tecleado comentando:
Sin embargo, puede simplemente suceder que el programa que reside
en la memoria de tu ordenador en ese momento, esta pensado para
elaboracion de textos, en cuyo caso podras ser capaz de teclear palabras
segun tu propia discrecion, y meterlas hacia la memoria del ordenador,
y hacer que se impriman por impresora, logrando casi que fuera una
autentica y aventajada maquina de escribir. Pero para hacer todo ello,
primero tendrias que instruir a la maquina para que supiera hacerlo, para
lo que trasvasarias del cassette a la memoria de la maquina el programa
pertinente.
Un ordenador parece que combina diversos equipos que se han hecho
familiares en el hogar y en la oficina: el monitor similar al televisor,
el teclado a una maquna de escribir, el cassette, etc.; pero debes recordar
que las similitudes son generalmente solo superficiales, y que el ordenador
es una combinacion de 'circuitalia familiar' a la que la 'programalia'
le confiere una personalidad completamente diferente y extraordinariamente
VERSATIL.
Apendice I Pagina 6
EN LAS ENTRANAS DE LA MAQUINA
Apendice II:
Una introduccion a las intimidades de los ordenadores
^Quien teme a la jerga?
Como con todas las industrias especializadas, la informatica ha desarrollado
su propio 'idiolecto' como una forma breve de comunicar conceptos
complicados que exigen muchas palabras y largas frases para ser explicados
con el lenguaje del vulgo. No es simplemente que la industria de alta
tecnologi'a sea culpable de esconderse detras de una aparente pantalla
de humo formada por 'palabras secretas 1 , jerga y terminologi'a; la mayoria
de todos nosotros estamos contra esas barreras puestas a la comprension,
pero sin embargo, erigidas en todas las profesiones y oficios principales.
Una diferencia importante es que la confusion, por ejemplo, en la 'jerga
legal' viene de la manera en que se usan las palabras, y no por las palabras
en si' mismas, como es el caso del ordenador. La mayoria de la gente
que aumenta su familiarizacion con la terminologi'a informatica, se saldra
del camino para usar las palabras en la forma mas directa posible, para
minimizar la complejidad de la comunicacion (y obviamente para teclear
menos).
No te confundas tampoco por el aparente 'simple lenguaje' usado en
informatica, ya que no es un asunto literario, sino una ciencia precisa,
y aparte de la sintaxis de las frases comunicadas al ordenador, la estructura
de comunicacion es muy directa, y no puede en absoluto ser confusa o
ambigiia. Los maestros de informatica y computos, somos todavi'a meros
aprendices en el arte de transmitir conocimientos y el significado exacto
que gui'a a un programador en la construccion de su programa.
Habiendo dicho esto, aunque sea ahora obvio o no lo sea el significado
de un programa y un ordenador, hay todavi'a muchos aspectos que pueden
ser analizados y clasificados como elegantes o desordenados, y se esta
poniendo un mayor enfasis en abordar formalmente la construccion de
programas ahora que la inicial marejada levantada por la revolucion
microinformatica se esta asentando.
La informatica es rapidamente comprendida por muchos jovenes que
aprecian la precision y simplicidad de las ideas, y la manera en que pueden
comunicarse. Seguro que no encontraras muchos 'abogados con 10 anos
de edad, y sin embargo encuentras multitud de ninos de 10 anos que ya
son programadores.
■ Apendice II Pagina 1
EN LAS ENTRANAS DE LA MAQUINA
Las bases del BASIC
Virtualmente, cualquier ordenador casero esta dotado del lenguaje llamado
BASIC, que permite escribir los programas en la jerga mas cercana al
lenguaje vulgar disponible hoy.
El significado de donde BASIC derivo su nombre (en lo referente a
'principiantes=beginners') ya no tiene ningun significado particular dado
el grado de complejidad de los lenguajes, y que hay programas
extremadamente complejos y potentes escritos usando el lenguaje BASIC.
Sin embargo, no hay duda que el acierto en la eleccion del nombre, ha
trai'do a muchos principiantes por su promesa de suministrarles la BASE
para adentrarse en la marana de lenguajes informaticos, y eso si' ha
contribuido de forma significativa a su universalidad. A partir de aqui',
las palabras comunmente usadas que forman el glosario de terminos
informaticos seran presentadas imprimiendolas primeramente en negrita.
tyo intentes aprenderlas solo con las siguientes secciones, tambien hay
un indice y esta el resto del manual.
La Base
BASIC es un lenguaje informatico que interpreta un cierto surtido de
frases imperativas, y que efectua operaciones sobre los datos, cuando
en la maquina hay un programa ejecutandose. A diferencia del vocabulario
medio humano de 5 a 8.000 palabras (mas todos los diferentes modos
verbales que pueden usarse), el lenguaje BASIC tiene suficiente con cerca
de 200 palabras clave. Los programas para ordenadores que se escriben
usando BASIC, tienen que seguir reglas rigidas en cuanto al uso de esas
palabras. La sin taxis es precisa, y cualquier intento de comunicar con
el ordenador usando expresiones coloquiales y vulgares (lenguaje) dara
como resultado el frio y mecanico mensaje:
Syntax Error
-Apendice II Pagina 2
EN LAS ENTRANAS DE LA MAQUINA
y no es tan restrictivo como a primera vista aparece, dado que el lenguaje
BASIC esta disenado primordialmente para manipular numeros: los datos
numericos. Las palabras son en esencia, una ampliacion de los operadores
matematicos ya familiares (+ / - etc.) y el concepto mas importance
para los principiantes es 'aprehender' el hecho que el ordenador solo puede
trabajar con datos e informacion que utiliza un convenio universal basado
en el sistema de numeracion DOS para dar nombres a las senales electricas
que se transfieren entre el microprocesador (que es la unidad central
en los grandes ordenadores), los circuitos memorizadores y canalizadores,
y las diversos circuitos de los equipos perifericos.
NUMEROS POR FAVOR
Si un ordenador se usara para conservar las obras completas de Cervantes,
y nos armaramos con el instrumental adecuado, es bastante obvio que
no podriamos encontrar ninguna letra o palabra en ninguna parte del
sistema. Pero si' podemos encontrar sitios en el sistema donde la presencia
o ausencia de senal electrica, adecuadamente interpretada, guarda una
estrecha relacion con las inmortales palabras de Cervantes.
Es mucho mas simple entonces hablar de que BASIC interpreta las letras
y palabras como numeros unicamente, que el ordenador puede manipular
usando las operaciones matematicas habituales y las comparaciones
estudiadas como logica de Boole, que le permiten determinar si un numero
es mayor que otro, y si una letra va antes que otra de acuerdo con el
alfabeto que maneje; y 'elegir' la tarea a realizar dependiendo de si se
cumplen o no ciertas condiciones.
Y ademas, para que pueda realizar una tarea, se le tiene que desglosar
pormenorizada y exactamente en una serie de esas operaciones elementales,
cada una con su frase convenida con el, y esa serie de frases es lo que
denominamos PROGRAMA.
Y ademas, depende del lenguaje utilizado ese detalle puede ser mayor
o menor. Y si por ejemplo, operas en codigo maquina es normal que el
proceso de multiplicacion se lo tengas que detallar como repeticion de
sumas del multiplicando, tantas veces como indica el multiplicador, porque
el microprocesador utilizado no sabe mas que sumar. En BASIC alguien
preparo ese detalle, lo introdujo en la maquina y decimos que la maquina
ya sabe multiplicar. Y por ello, ya puedes decir en BASIC una instruction
que obligue al ordenador a multiplicar, por ejemplo, 35 por 10 y te de
el resultado en lo que has llamado variable A. Y se lo tendrias que decir
de acuerdo con la sintaxis, en la forma: LET A=35*10.
•Apendice II Pagina 3-
EN LAS ENTRANAS DE LA MAQUINA
Para llevar a cabo lo que has requerido, en algun sitio de la unidad central
de proceso (con las siglas inglesas CPU), se graba el operando 10, y en
otra parte el otro operando 35. Luego, la maquina bajo el control del
interpretador BASIC, lo que hace en realidad es considerar el sitio donde
tiene alojado en 10 como un contador del que va restando 1, al mismo
tiempo que va acumulando la suma de 35+35+35+... en otro sitio del
circuito, y detiene el proceso cuando ese contador ha llegado a 0, momento
en que el resultado de 350 es enviado (y no olvides que lo que viajan
son electrones, y esto es solo es una cierta forma de hablar) a otro sitio
para que sea sacado y mostrado como respuesta.
Si todo este proceso te suena demasiado aburrido, tendras razon, y habras
descubierto la primera y mas importante verdad sobre los ordenadores.
Un ordenador es simplemente una maquina 'extremadamente tonta y
extremadamente rapida', por lo que solo puede hacer tareas simples y
repetitivas, pero las hace a toda velocidad y sin cansarse.
En un ordenador solo DOS estados son reconocidos en las senales
electricas de sus circuitos; y esos estados solo necesitan por tanto dos
simbolos para ser representados, de ahi' que se llame sistema binario,
y a esos dos simbolos se denominen BIToS; y los habituales son 'si'' y
'no', 'A' y 'B'; y los que tu quieras. Todo esto conecta ademas con la
mencionada logica de BOOLE basada en la 'certeza' y 'falsedad' de la
vida normal. Y a partir de ahi' se construye todo lo demas.
Apendice II Pagina k-
EN LAS ENTRANAS DE LA MAQUINA
El proceso de considerar unicamente dos estados distinguibles en una
determinada situacion, es la esencia del termino binario y de los que
usando combinaciones de este, llamamos digital y discrete) (los electronicos
tambien hablan de circuitos basculadores o biestables, porque solamente
poseen dos estados estables y entre los que 'basculan'). Descomponiendo
cualquier dato en combinaciones de 'ringlas de biestables' es posible de
una manera ordenada y sistematica representar cualquier informacion,
manipular posteriormente dicha informacion, y volver a convertirla para
presentarla con sentido humane Todo eso aunque hecho a velocidades
increibles de millones de cambios de estado en cada segundo, acaba
llevando su tiempo y es el empleado por el ordenador en hacer una
operacion.
Ademas, el microprocesador tiene un tiempo finito para desarrollar una
tarea que ha de cumplir antes de que pueda comenzar a tra-bajar en la
siguiente tarea. Estos tratamientos binarios, son los que permiten pasar
del 'bianco' al 'negro' y por combinaciones inteligentes de bianco y negro
obtener toda la escala de grises, por ejemplo.
Si la respuesta ultima analizando un solo punto solo puede ser 6 1, no hay
posibilidad de ser 'casi' correcto, a no ser que se examinen varios puntos
al mismo tiempo. El hecho de que los ordenadores pueden algunas veces
cometer errores cuando manejan datos numericos, es debido a la limitacion
de puntos binarios que puede analizar considerandolos como un grupo;
y por tanto, con la precision que pueden conseguir sobre numeros decimales
sobre los que operan. Y de ahf los errores que cometen en redondeos,
v.g. decir 0,999999999 cuando deben simplemente un 1.
En una palabra, si solo se mira un cable dentro del ordenador, solo hay
dos estados posibles, y lo normal es decir: si hay tension hay un 1, y
si no hay tension hay un 0; y para pasar de ahf, no queda mas remedio
que utilizar cientos de miles de cables.
Bitos y 'Bicos'
Sucede que estamos acostumbrados a comprender las cantidades y
reflejarlas en un numero basado en el sistema decimal que tiene como
base el numero 10; y que por tanto, dispone de 10- simbolos diferentes
de los que partir (y esos diez simbolos se llaman obviamente dfgitos
porque digito viene de dedo). Y te recuerdo que son:
0123456789
En el sistema binario solo se dispone de dos simbolos y esos dos simbolos
obviamente se llaman bitos y los habitualmente empleados son: y 1.
Pero naturalmente, podriamos haber usado cualesquiera otros dos simbolos,
y quiza evitariamos la cantidad de confusiones provocadas por el hecho
de que tambien se emplean como digitos.
•Apendice II Pagina 5-
EN LAS ENTRANAS DE LA MAQUINA
Pero igual que en el sistema binario formamos "sartas de digitos" para
designar cantidades superiores a 9, de igual manera formamos sartas
de bitos, para representar situaciones y cantidades y letras y cifras y
todo 1q que queramos. Y usando esos si'mbolos en mi ordenador, cuando
escribo mi nombre queda grabado como:
0100101001110101011011000100100101101111
que por supuesto, no hay quien sea capaz de manejar (salvo el ordenador).
Por lo tanto, y como sucede en otras cosas, hay que dividir para veneer,
y empieza a tener mas sentido si te la presento separada en la forma
siguiente:
0100 1010 0111 0101 0110 1100 0100 1001 0110 1111
Esta separacion y agrupacion de bitos, equivale realmente a examinar
simultanea y sucesivamente diversos puntos internos dentro del ordenador.
Y puedes ver que hay grupos de cuatro, que llamamos cuartetos, y grupos
de ocho, que llamamos octetos, por no decir dos cuartetos, u ocho bitos.
Es un convenio internacional la manera en que se forman esos cortes
y grupos para que todos entendamos su significado. Y el grupo mas
importante es precisamente el numero de puntos que el ordenador
internamente mira al mismo tiempo. Y aunque ese grupo depende del
ordenador en cuestion, si' se le ha dado un nombre adecuado: se le llama
'bocado', porque es lo que se traga en una sola tacada. Por supuesto que
lo han hecho con la palabra inglesa correspondiente 'byte' (que tambien
es mordisco) y los hispano-parlantes usan varias con preponderancia de
'bico' (que mas que un mordisco es un beso).
Ademas ya va siendo generalmente aceptado, hacerlo corresponder al
octeto, debido precisamente a que la inmensa mayorfa de los ordenadores
personales actuates es la cantidad de bitos que tratan de una sola vez,
traen de la memoria o meten en la memoria, envian hacia los circuitos
de pantalla, traen del teclado, sacan hacia la impresora, etc.
Y ademas, tambien existen convenios internacionales para ver la
equivalencia de esta NOTACION, con las otras notaciones empleadas
para datos numericos (el sistema de numeracion en base 2) y datos literales
(el codigo ASCII).
Veamos primero el sistema de numeracion en base 2. Si recuerdas las
matematicas estudiadas, veras que una determinada cantidad puedes decir
que es 7 si empleas la notacion decimal, y puedes decir que es 00000111
si empleas notacion binaria. Y para ello basta considerar que los bitos
de ese bico son meramente indicatives de si has de usar o no la
correspondiente potencia del numero 2. Es decir:
Apendice II Pagina 6-
EN LAS ENTRANAS DE LA MAQUINA
2 7
2 e
2 s
2" 2 3
2 2
2 1
2°
1
1
1
1
NO
NO
NO
SI NO
SI
SI
SI
^>
2 14 + 2 2 + 2 1 + 2° =
16 + 4 + 2 + 1 ■ = 23
Por tanto, con un bico (de los.de 8 bitos) el numero equivalente en el
sistema decimal mas alto que puedes conseguir, sera:
11111111 = 255
00000000 =
Y en total habra por tanto, 256 numeros diferentes; y ese numero ya
empieza a serte familiar en cuanto empiezas a trabajar con ordenadores.
Te sonaran en particular mucho mas sus multiplos, que van correspondiendo
a las cantidades y numeros representables mediante parejas de bicos,
cuartetos de bicos, y octetos de bicos. Porque si compruebas con una
pareja de bicos podemos llegar a distinguir 256 x 256 = 65.536 que
divididos por 1.024 (que ya veremos, es la famosa K), nos da exactamente
64 que sin ninguna duda es el numero de bicos que tiene la memoria de
muchisimos ordenadores (y si no has oido hablar de 64K, mejor que no
sigas leyendo).
12 3 4 5 6 7
^^^^^^^^
2 ^^ouj^^^u,
3 ^^^^^^^^
4 ^^^^^^^^
5 .^^^^^^^^
6 ^^^^^^^^
7 ^^^^^^^^
8 ^^^^^^^^
En la figura, se pueden apreciar 80 bandejas dispuestas regularmente
('ringlas') que pueden servirnos para simbolizar claramente lo que veriamos
si pudieramos examinar simultaneamente 80 puntos biestables. Pero mejor
consideremos que examinamos sucesivamente 10 sitios y en cada sitio
es el examen simultaneamente de 8 puntos de los circuitos internos. Si
los asignamos a celdillas capaces de contener un bito (un 1 o un 0)
tendremos un trozo de memoria con 10 BICOS de 8 bitos.
— Apendice II Pagina 7-
EN LAS ENTRANAS DE LA MAQUINA
Pues bien, si continuaras anadiendo renglones horizontales con 8 celdillas
cada una hasta que llegaras al numero 1.023, tendrias exactamente la
representacion de IK de memoria, ya que habria 1.024 bitos.
Y si siguieras hasta llegar al numero 65535, tendrias los 65.536 bicos
(64 x 1.024) que serian las 64K mencionadas.
Afortunadamente, los que construyen el interpretador BASIC son los que
tienen que conocer todas estas cosas para que tu no las necesites, y puedas
llegar a ser un programador eficiente sin una comprension completa de
los bitos, los bicos, etc. Aunque una apreciacion de todo lo que significa
te ayudara enormemente en cuanto comiences a dibujar graficos y avances
en la ciencia informatica. Por lo tanto, merece la pena emplear algun
esfuerzo en adquirir esa comprension, y el significado de los diversos
numeros 256, 1.024, tanto en su notacion decimal como en su notacion
binaria, y en la que veremos en el siguiente parrafo la notacion
hexadecimal.
Sin embargo... simple y elegante como es, la notacion binaria es tediosa
y propensa a inexactitudes que no pueden ser detectadas con una mirada.
La notacion binaria tiene asociada intimamente otros sistemas de notacion
que realmente son los que usan los programadores al tratar de estos temas.
Se denomina normalmente hexadecimal (y viene de 16), y se abrevia
normalmente 'hex'. Coincide con el sistema de numeracion con base 16,
y como 16 = 2 1 * basta separar adecuadamente la notacion binaria en grupos
de cuatro (cuartetos) y comprobar que a todos los efectos son equivalentes.
Los 16 'hexitos' (y muchos prefieren llamarlos 'dexitos' para evitar
interpretar el prefijo hexa como 6, dado que ya existen los hexagonos),
se simbolizan normalmente por:
0123456789ABCDEF
o mas bien
0123456789AbcdEF
para aprovechar que asf los puedes representar sin confusion incluso en
los relojes llamados digitales.
Con esta notacion, un bico de 8 bitos se convierte en 2 dexitos. Y basta
multiplicar el equivalente decimal del primer dexito por el numero 16
y sumarle el equivalente del segundo dexito para obtener el equivalente
decimal de un bico de 8 bitos.
En la tabla siguiente, y para resaltarte el hecho de que el y el 1 con
que simbolizamos habitualmente los BITOS, puedes ser simbolizados con
cualquier otra cosa, te resumimos todo en la tabla siguiente:
Apendice II Pagina 8
EN LAS ENTRANAS DE LA MAQUINA
Decimal
Binarii
1
1
2
10
3
11
4
100
5
101
6
110
7
111
8
1000
9
1001
10
1010
11
1011
12
1100
13
1101
14
1110
->
CPC464
Hexadecimal
fl
-X-
1
*fl
2
-X--X-
3
*flfl
4
*fl*
5
**fl
6
***
7
*flflfl
8
*flfl*
9
*fl*fl
A
*fl**
B
**flfl
C
**fj*
D
***f]
E
-X-***
F
*flflflfl
10
15 1111
16 10000
A traves de toda esta guia, designamos los numeros hexadecimales
precediendoles del signo &, v.g. &D6; ya que es el simbolo mas
comunmente usado por los programadores cuando estan empleando tecnicas
de lenguaje maquina. Aunque todavia prefieren los lenguajes ensambladores
que es todavia otra forma mas nemotecnica de representar ya no solo
datos numericos y literales a usar en el programa, sino tambien las claves
o codigos de las operaciones que el microprocesador tiene que efectuar.
Si lo que quieres es hallar el equivalente hexadecimal de un numero decimal
simplemente tienen que efectuar la division entera, tomando el numero
decimal como dividendo y 16 como divisor. El cociente resultante sera
un numero menor que 16, que constituye el primer dexito del equivalente,
y el resto que tambien sera menor que 16, constituye el segundo dexito
del equivalente. Prueba con el decimal 214, y veras que el cociente es
13 y el resto 6; que en notacion hexadecimal, 13 es la D y 6 tambien
se simboliza con 6. Y que por tanto, el equivalente es &D6. (Y no te
dejes llevar de la tentacion, y considerar &D6 como 13+6 6 136; ahora
ya sabes que es 13x16+6=214).
Es el mismo proceso cuando lees un numero decimal (y hay mucha gente
que prefiere decir un numero denario, para evitarse problemas con la
parte fraccionaria (decimal) de un numero), tal como 89 que en realidad
es 8x10+9. Simplemente sucede que multiplicar por 10 nos es mucho mas
simple que multiplicar por 16.
Si has llegado hasta aqui' sin que se te haya armado un lib, estas bien
dispuesto para comenzar el camino de la informatica. Puede que incluso
te preguntes de que va todo esto, y que no es necesario. Un ordenador
es un aparato que maneja conceptos e ideas muy simples: y simplemente
ocurre que efectua esas tareas a una gran velocidad (millones de veces
•Apendice II Pagina 9-
EN LAS ENTRANAS DE LA MAQUINA
por segundo) y con una enorme capacidad para almacenar y recordar
todos los datos que le has impuesto, y los resultados intermedios de los
muchos millares de simples sumas y 'pases' de un circuito a otro para
conseguir un resultado.
Si quieres proseguir estudiando, hay realmente millares de libros disponibles
sobre el tema, algunos tenderan a dejarte mas confuso de lo que estabas
antes de comenzar a leerlos; y unos pocos, realmente te guiaran durante
el camino, desvelandote la sencillez de las relaciones fundamentals que
existen entre los sistemas de numeracion y la manera en que el ordenador
los maneja.
Y no se nos olvida que tambien trabaja con datos literales, pero
sencillamente lo hace 'al pie de la letra', usando el convenio internacional
ASCII. Basta que apliques lo anterior a la sarta de unos y ceros con que
empezamos para que te sea facil convertirla usando la notacion
hexadecimal en esta otra:
4A 75 6C 69 6F
Y luego consultar la tabla de codigos ASCII para poder descifrarla y ver
que dice simplemente:
3 u 1 i o
Apendice II Pagina 10
Codigos ASCII y caracteres CPC464
Apendice III:
Los caracteres ASCII y
los caracteres graficos del CPC464
m. 1 Ascn
Para referenda, reproducimos aqui' el repertorio de caracteres standard
ASCII usando las notaciones decimal, octal y hexadecimal, juntamente
con el caracter 'visivo' o de control que le corresponde. Asimismo, la
composicion grafica de los caracteres usados en el CPC464 se muestran
a continuacion.
DEC OCTAL HEX
ASCII characters
DEC OCTAL HEX
ASCII
DEC
OCTAL HEX
ASCII
000
00
NUL <[CTRL]A)
50
062
32
2
100
144
64
d
1
001
01
SOH ([CTRLJB)
51
063
33
3
101
145
65
e
2
002
02
STX([CTRL)C)
52
064
34
4
102
146
66
f
3
003
03
ETX ([CTRLJC)
53
065
35
5
103
147
67
9
4
004
04
EOTflCTRLJD)
54
066
36
6
104
150
68
h
5
005
05
ENQ([CTRL]E)
55
067
37
7
105
151
69
i
6
006
06
ACK ([CTRL]F)
56
070
38
8
106
152
6A
J
7
007
07
BEL ([CTRL]G)
57
071
39
9
107
153
66
k
B
010
08
BS ([CTRLJH)
58
072
3A
:
108
154
6C
I
9
011
09
HT([CTRL]I)
59
073
3B
/
109
155
6D
m
10
012
OA
LF ([CTRLJJ)
60
074
3C
<
110
156
6E
n
11
013
OB
VT([CTRL]K)
61
075
3D
=
111
157
6F
12
014
OC
FF «CTRL]L)
62
076
3E
>
112
160
70
P
13
015
OD
CR ([CTRLJM)
63
077
3F
113
161
71
q
14
016
OE
SO ([CTRL]N)
64
100
40
<§>
114
162
72
r
15
017
OF
SI (|CTRL]0)
65
101
41
A
115
163
73
s
16
020
10
OLE (ICTRL]P)
66
102
42
B
116
164
74
t
17
021
11
DC1 ([CTRL]Q)
67
103
43
C
117
165
75
u
18
022
12
DC2 ([CTRLJR)
68
104
44
D
118
166
76
V
19
023
13
DC3 flCTRUS)
69
105
45
E
119
167
77
u
20
024
14
DC4 ([CTRL]T)
70
106
46
F
120
170
78
X
21
025
15
NAK ((CTRL]U)
71
107
47
G
121
171
79
y
22
026
16
SYN (|CTRL]V)
72
110
48
H
122
172
7A
z
23
027
17
ETB ([CTRL]W)
73
111
49
I
123
173
7B
{
24
030
18
CAN ([CTRLJX)
74
112
4A
J
124
174
7C
I
25
031
19
EM ([CTRL]Y)
75
113
4B
K
125
175
7D
>
26
032
1A
SUB ([CTRLJZ)
76
114
4C
L
126
176
7E
27
033
1B
ESC
77
115
40
M
28
034
1C
FS
78
116
4E
N
29
035
1D
GS
79
117
4F
30
036
1E
RS
80
120
50
P
31
037
1F
US
81
121
51
Q
32
040
20
SP
82
122
52
R
33
041
21
i
83
123
53
S
34
042
22
"
84
124
54
T
35
043
23
#
85
125
55
U
36
044
24
$
86
126
56
V
37
045
25
X
87
127
57
U
38
046
26
&
88
130
58
X
39
047
27
1
89
131
59
Y
40
050
28
(
90
132
5A
Z
41
051
29
)
91
133
5B
C
42
052
2A
*
92
134
5C
\
43
053
2B
+
93
135
5D
]
44
054
2C
/
94
136
5E
T
45
055
2D
95
137
5F
-
46
056
2E
.
96
140
60
47
057
2F
/
97
141
61
a
48
060
30
98
142
62
b
49
061
31
1
99
143
63
c
-Apendice III Pagina 1-
Codigos ASCII y caracteres CPC464
III. 2 Repertorio de caracteres especffico de la maquina CPC464
Los caracteres reproducidos aqui', estan mostrados
usando una retfcula de 8x8, que es la que se emplea
para exponer los caracteres en la pantalla del
CPC464. Los caracteres definidos por el usuario
pueden ser agrupados y colocados unos contiguos
con otros para lograr figuras especiales. (Vease
el comando SYMBOL en el capitulo 8).
33
&H21
&X001 00001
34
&H22
&X001 00010
35
&H23
&X001 00011
32 8.H2C
&X001 00000
36
&H24
&X00100100
37
&H25
&X00100101
38
&H26
&X00100110
39
&H27
&X00100111
Si
40
&H28
&X00101000
■
41
&H29
&X00101001
1 ■■■!
TSBL
42
&H2A
&X00101010
3
SP
43
&H2B
&X00101011
aa
44
&H2C
&X00101100
ffl
45
&H2D
&X00101101
-Apendice III Pagina 2-
46
&H2E
&X00101110
47
&H2F
&X001 01111
48
&H30
&X001 10000
Codigos ASCII y caracteres CPC464
49
&H31
&X001 10001
50
&H32
&X001 10010
BH
51
&H33
&X001 10011
52
&H34
&X00110100
53
&H35
&X00110101
54
&H36
&X00110110
55
&H37
&X00110111
56
&H38
&X001 11000
57
&H39
&X001 11001
58
&H3A
&X001 11010
■ ■
59
&H3B
&X00111011
60
&H3C
&X00111100
61
&H3D
&X00111101
g§
62
&H3E
&X00111110
63
&H3F
&X001 11111
64
&H40
&X01 000000
65
&H41
&X01 000001
66
&H42
&X01 000010
67
&H43
&X01 000011
68
&H44
&X01000100
-Apendice III Pagina 3-
Codigos ASCII y caracteres CPC464
69
&H45
&X01000101
70
&H46
&X01000110
71
&H47
&X01000111
72
&H48
&X01001000
I
^WWffl
73
&H49
&X01001001
74
&H4A
&X01001010
75
&H4B
&X01001011
76
&H4C
&X01001100
77
&H4D
&X01001101
78
&H4E
&X01001110
79
&H4F
&X01 001111
80
&H50
&X01010000
81
&H51
&X01010001
82
&H52
&X01010010
83
&H53
&X01010011
84
&H54
&X01010100
85
&H55
&X01010101
86
&H56
&X01010110
87
&H57
&X01010111
88
&H58
&X01011000
Ap>endice III Pagina 4-
Codigos ASCII y caracteres CPC464
Wf:: :::#£:
ABBE: :""i
89
&H59
&X01011001
90
&H5A
&X01011010
91
&H5B
&X01011011
92
&H5C
&X01011100
93
&H5D
&X01011101
94
&H5E
&X01011110
95
&H5F
&X01011111
FFFffl
JUHI
i rmn m i
96
&H60
&X01 100000
jFrBS
mn nrr
97
&H61
4X01100001
98
&H62
&X01 100010
99
&H63
&X01 100011
100
&H64
&X01100100
mi l mi
101
&H65
&X01100101
102
&H66
&X01100110
103
&H67
&X01100111
104
&H68
&X01101000
rrjMm p
:±BH"i: jJS+S
--flfflflxl ll"""3
105
&H69
&X01101001
106
&H6A
&X01101010
107 108
&H6B &H6C
4X01101011 4X01101100
■Apendice III Pagina 5 — '
Codigos ASCII y caracteres CPC464
109
&H6D
&X01101101
110
&H6E
&X01101110
111
&H6F
&X01101111
112
&H70
&X01110000
R
P
Lain
E3j
113
&H71
&X01 110001
Hi
Inflnfl I I I
114
&H72
&X01 110010
i rrrm \
ESS
fffft ff-
1 1 1 mn i
115
&H73
&X01110011
116
&H74
&X01110100
117
&H75
&X01 110101
118
&H76
&X01110110
ra is
y-F.: 1
111111
119
&H77
&X01110111
120
&H78
&X01111000
B
121
&H79
&X01111001
122
&H7A
&X01111010
123
&H7B
4X01111011
124
&H7C
&X011 11100
125 126
&H7D &H7E
&X01111101 &X01111110
■ Apendice III Pagina 6
127
&H7F
&X01111111
128
&H80
&X1 0000000
Codigos ASCII y caracteres CPC464
wm
129
&H81
&X1 0000001
130
&H82
&X1 0000010
131
&H83
&X1 0000011
132
&H84
&X1 00001 00
133
&H85
&X1 00001 01
134
&H86
&X1 00001 10
135
&H87
&X1 00001 11
_::::q
3
:: J
i
_ ■■■■
■■■■
:_: ■■■■
■■■a
136
&H88
&X1 0001 000
137
&H89
&X1 0001 001
138
&H8A
&X1 0001 010
■■■■■■■I
■■■■■■■I
■■I IBB
JUUIBBBB
E::::B
ffilB
139
&H8B
&X10001011
BBBBBBBI
BBBBBBBI
BBBBBBI
■■■■■■■■
140
&H8C
&X1 0001 100
■■■___
BBE__
bb9i__
BBBTTT
BBBBBB
BBBBBB
BBBBBB
BBBBBB
141
&H8D
&X1 0001 101
BBBI
BBBI
142
&H8E
&X10001110
—■—P
143
&H8F
&X10001111
n
144
&H90
&X1 001 0000
145
&H91
&X10010001
146
&H92
&X1 001 0010
147
&H93
&X1 001 0011
E
148
&H94
&X10010100
■Apendice III Pagina 7-
Codigos ASCII y caracteres CPC464
■
■
■
■
■
■
■
1
149
&H95
&X10010101
150
&H96
&X10010110
151
&H97
&X10010111
■
152
&H98
&X1 001 1000
153
&H99
&X1 001 1001
mw
154
&H9A
&X1 001 1010
155
&H9B
&X1 001 1011
■■■■^::_
156
&H9C
&X10011100
157
&H9D
&X10011101
158
&H9E
&X10011110
159
&H9F
&X10011111
wm
160
&HA0
&X1 01 00000
Era
161
&HA1
&X1 01 00001
L
"flpyffi
162
&HA2
&X1 01 00010
165 166
&HA5 &HA6
&X10100101 &X10100110
Apendice III Pagina 8
163
&HA3
&X1 01 00011
m
167
&HA7
&X10100111
11
164
&HA4
&X10100100
M
168
&HA8
&X10101000
Codigos ASCII y caracteres CPC464
169
&HA9
&X10101001
m
170
&HAA
&X10101010
171
&HAB
&X10101011
172
&HAC
&X10101100
m
173
&HAD
&X10101101
174
&HAE
&X10101110
175
&HAF
&X10101111
176
&HB0
&X1 01 10000
177
&HB1
&X1 01 10001
178
&HB2
&X1 01 10010
179
&HB3
&X10110011
180
&HB4
&X10110100
181
&HB5
&X10110101
M
182
&HB6
&X10110110
183
&HB7
&X10110111
184
&HB8
&X101 11000
185
&HB9
&X101 11001
186
&HBA
&X10111010
187
&HBB
&X10111011
188
&HBC
&X10111100
-Apendice III Pagina 9-
Codigos ASCII y caracteres CPC464
sS!
189
&HBD
&X10111101
193
&HC1
&X1 1000001
197
&HC5
&X1 10001 01
201
&HC9
&X1 1001 001
ffl
J I II II
■Bop
■SITU"
nPA
190
&HBE
&X10111110
191
&HBF
&X10111111
192
&HC0
&X1 1000000
EEfii
ESS
194
&HC2
&X1 1000010
195
&HC3
&X1 1000011
|gg|
196
&HC4
&X1 10001 00
S
fffflm feraa3
198
&HC6
&X1 10001 10
fflffl
199
&HC7
&X1 10001 11
200
&HC8
&X1 1001 000
nmii
■ikcm
■■Hh-Tmi
202
&HCA
&X1 1001 010
203
&HCB
&X1 1001 011
204
&HCC
&X1 1001 100
205 206
&HCD &HCE
&X11001101 &X11001110
^ — Apendice III Pagina 10
207
&HCF
&X11001111
208
&HD0
&X1 101 0000
Codigos ASCII y caracteres CPC464
209
&HD1
&X1 101 0001
210
&HD2
&X11010010
211
&HD3
&X1 101 0011
212
&HD4
&X11010100
£!
213
&HD5
&X11010101
_ZTU
~IIJ ■■
I_J ■■■
_J ■■■■
J ■■■■■
214
&HD6
&X11010110
215
&HD7
&X11010111
216
&HD8
&X1 101 1000
N
217
&HD9
&X1 101 1001
218
&HDA
&X11011010
219
&HDB
&X11011011
220
&HDC
&X11011100
221
&HDD
&X11011101
222
&HDE
&X11011110
223
&HDF
&X11011111
224
&HE0
&X1 11 00000
("■■■■■■T
wmm
!H
225
&HE1
&X1 11 00001
psssa
226
&HE2
&X1 1100010
r«BT«
■■■■■■
■■■■■■
_■■■■!
■■!_
227 228
&HE3 &HE4
&X11100011 &X11100100
Apendice III Pagina 11 •
Codigos ASCII y caracteres CPC464
229
&HE5
&X11100101
230
&HE6
&X11100110
231
&HE7
&X1 11001 11
232
&HE8
&X11101000
rSaRp;
233
&HE9
&X11101001
I ■■■!
■■■■I
234
&HEA
&X11101010
H
235
&HEB
&X11101011
■■■
■■■
■■■
r V
237
&HED
&X11101101
238
&HEE
&X11101110
239
&HEF
&X11101111
jrmm
236
&HEC
&X11101100
+'■■■
240
&HF0
&X1 11 10000
m
Mm
■■■■■■■■ iiiuiii
241
&HF1
&X1 11 10001
242
&HF2
&X1 11 10010
243
&HF3
&X1 11 10011
3
244
&HF4
&X11110100
muw
Ml
m
245 246
&HF5 &HF6
&X11110101 &X11110110
■ Apendice HI Pagina 1 2
247
&HF7
&X11110111
248
&HF8
&X11111000
Codigos ASCII y caracteres CPC464
249
&HF9
&X111 11001
*a
n
250
&HFA
&X11111010
251
&HFB
&X11111011
252
&HFC
&X11111100
253
&HFD
&X11111101
jSBi
M
!■■■■
254
&HFE
&X11111110
PbBi ■■
s a g:
255
&HFF
&X11111111
-Apendice III Pagina 13-
Codigos ASCII y caracteres CPC464
Valores ASCII prescritos como standard
3
3
3
3
3
3
3
3
3
13
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
5I£ SSS
00010
0000
0000,
•
§
LD
"3"
LJ
P-
C_J
cr
D
a.
O
o
<
z
o
(/)
cr
a
cr
D
o
o
o
QC
CO
ss
QO
ess
8SS
3
ss
888
sss
58
c
£
sss
s«s
c
5
sa
o
>
O
(0(0
CM »
* * *
*- U) l»-
, t
LU (0(0(0
OC o t <0
CM
C£ O <* (0
mm
CM CO
4
CM CM CM
*■ m r-
0)0)
oo
- t
o
i-
co
>
O
UJ
<<
= mm
mm
o o
CM
ui
E
<<
OO
CO CO
m m
I
CO CO
o o
L
Apendice III Pagina 14-
Codigos ASCII y caracteres CPC464
m
BEB
m
|s==|
535
555
SSS
Isssl
ass
SS8
ass
Is a si
asa
SSR
SSS
"3-
CD
LJ
PU
LJ
<o
>^
CD <L>
r; to
u o <« u i*
CCJ
O
c
fd
«* o
to CO >
Q
o
of
N
in
in
OT-oim^wtor^coguiQor
C*> CO fOMWrOWMnMNOlfl
0)
T5|o»-oicjnin<oi^coo> .JJ"=
>l C ""
0)
oioicooococowmcocomm^
Apendice III Pagina 15-
Codigos ASCII y caracteres CPC464
Codigos de entrada para teclas y joysticks
E
USE
00
I
000
0000
o
Lfci
ro in
00
oo
PI
1 nsl
* —
1 *-'
00
00
00
00
oo
v0
oo
o
in
oo
00
ro
00
vT
rv-
h0
00
o
-J-
in
-4-
vt
sO
•J-
vt
v*
va-
in
oo
>*•
00
in
m
in
in
o^
in
O
in
00
in
>o
O
00
o
>o
in
N-
T—
00
vl-
o
o-
00
f5"
o
i-
co
>
O
>
O
in
t
*- if)
CM CN
£ |
O
ir>
-Apendice III Pagina 16-
GENERALIDADES PARA EXPERTOS
Apendice IV:
Introduction al CPC464 para expertos
El CPC464 es un ordenador personal a color de bajo coste, con una
generosa, eficaz, y profunda implementacion de tecnologfas establecidas
presentado en estilo disenado para ofrecer un valor excepcionalmente
atractivo para el coste, acoplado con una capacidad sustancial para
expansion, y ser asf atractivo a ambos, el principiante y el experto.
El hardware y el software ROM ha sido disenado para proveer a los
programadores principiantes y experimentados un entorno amistoso, en
el que el software existente pueda ser adaptado a medida, y se pueda
escribir nuevo software para sacar ventaja de las muchas facetas
soportadas por el CPC464.
Las caracterfsticas primordiales del sistema son:
Z80CPU
El microprocesador mas ampliamente usado en los ordenadores personales
a lo ancho del mundo, y con el mejor software de base -especialmente
porque el CPC464 ofrece el potencial para la implementacion del CP/M.
La estructura unica del manejo de interrupciones, ha facultado al CPC464
para innovar el BASIC con posibilidades AFTER y EVERY, y otras
facilidades de tiempo real que controla el sonido y los temporizadores.
64K RAM
Se suministra como standard una cantidad generosa de RAM, con mas
de 42K disponibles realmente para el usuario, gracias a la implementacion
en ROM de tecnicas de solape al implementar el BASIC/
Pantalla
El CPC464 admite tres modos basicos de manejo en pantalla, incluyendo
textos de 80 columnas, un surtido de 27 colores y resolucion de hasta
640x200 pixels.
Teclado Real
Un teclado de estilo mecanografico, con un racimo de teclas para cursor
y un tablero standard separado para entrada numerica, que dobla el uso
para propositos de teclas funcionales.
Apendice IV Pagina 1 — '
GENERALIDADES PARA EXPERTOS
Cassette incorporado
El almacenamiento en la cassette local se dispone como una posibilidad
incorporada, permitiendo la operacion con ninguna complicacion adicional
para el usuario con enganche, fijacion de nivel, etc. Escribiendo a bien
lKbaudios o 2Kbaudios (seleccionable por software) con velocidades de
lectura automaticamente establecidas por hardware.
BASIC
Un BASIC standard en la industria escrito en Inglaterra, mas rapido y
mas versatil de lo que se pudiera esperar de tales BASIC, con muchas
ampliaciones para graficos y sonido, mas un extenso soporte en firmware.
Repertorio de caracteres extendido
Un repertorio completo de caracteres de 8 bits, incluyendo si'mbolos y
graficos es accesible en su mayoria via el teclado, y usando las funciones
CHR$(n).
Tiempo transcurrido
Las interrupciones se general por el barrido de cuadros suministrando
las facilidades para el tiempo transcurrido.
Teclas definidas por el usuario
Hasta 32 teclas pueden ser definidas por el usuario con sartas de 32
caracteres. La capacidad de redefinicion incluye parametros de repeticion.
Un repertorio completo de 255 caracteres (todo el ASCII y mas de 100
extras), opcionalmente redefinibles por el usuario.
Subrutinas
Muchas subrutinas ensambladas estan disponibles para ser citadas desde
BASIC.
MODOS DE PANTALLA
Hay tres modos de operacion en pantalla:
a) Normal
Modo 1: 40 columnas x 25 lineas, 4 tintas en texto
320 x 200 pixels, direccionables individualmente en 4 colores.
b) Modo multicolor
20 columnas x 25 lineas, 16 tintas en texto
160 x 200 pixels, individualmente direccionables en 16 colores
c) Modo de alta resolucion
80 columnas x 25 lineas, 2 tintas en texto
640 x 200 pixels, individualmente direccionables en 2 colores.
-Apendice IV Pagina 2
GENERALIDADES PARA EXPERTOS
Seleccion de color'
(NB: A traves de esta guia, 'negro' ie. luminancia nula, se considera como
color para los propositus de las siguientes descripciones).
El borde puede estipularse a CUALQUIER par de colores sin considerar
el modo de pantalla: ie. flasheando; o un solo color ie. estacionario.
El numero de INKS disponibles depende del modo de pantalla elegido.
Cada INK puede fijarse a un par de colores, ie. flasheando; o un solo
color ie. estacionario. El numero de tintas usables en cualquier momento
depende del modo de pantalla previamente definido. El PAPER de texto,
PEN de texto y PEN de graficos, puede fijarse a una tinta disponible.
La escritura de texto puede fijarse para que sea traslucida u opaca: ie.
bien ignorara el color del papel y sobre-escribira los graficos, o
sobre-escribira completamente el fondo.
Ventanas
El usuario puede elegir hasta ocho ventanas de textos en las que se
escriben caracteres, y tambien una ventana de graficos en la que se
pueden efectuar 'ploteado'.
Las ventanas se restauran a lo prescrito cuando se fija el modo de pantalla.
NB: Si la ventana de texto es equivalente a toda la pantalla (prescrito),
se logra el despliegue rapido por hardware. Si la ventana de texto es
menor que la pantalla disponible, el despliegue se consigue por software,
que es correspondientemente mas lento.
Cursor
El cursor esta inhibido durante los periodos en que la CPU no requiere
entrada por teclado, actuando asf como un prontador automatico. El
cursor se representa por un cuadrado de color invertido.
Sonido polifonico
Las facilidades de sonido del CPC464 estan generadas usando la pastilla
generadora de sonido standard en la industrial de General Instruments
familia AY8910. La pastilla opera con tres canales (voces) cada uno de
los cuales puede ser independientemente fijado en tono y actitud. Se
puede anadir ruido bianco como se requiera.
Los tres canales aparecen como izquierda, derecha y centro (usando la
clavija de extension estereo). El altavoz interno produce una salida
combinada monoaural.
El software provee facilidades para el control de envolvente en amplitud
y tono. La envolvente de amplitud interna de la pastilla generadora de
sonido no se usa' normalmente.
-Apendice IV Pagina 3
GENERALIDADES PARA EXPERTOS
L
Portal de impresora
Esta dotado de un portal de impresora paralelo compatible Centronics
standard en la industria, usando la senal 'Busy' para efectuar operaciones
de apreton de manos.
Apoyo de expansion
Muchas interfaces hardware estan disponibles via bloques de puentes o
direccionamiento indirecto para proveer facilidades de expansion de
software. AMSTRAD presentara, entre otros items, ductoras de disco,
interfaces series con ductora de software en ROM, etc.
Coordenadas
El origen de texto es la esquina superior izquierda de la pantalla, y las
posiciones fisicas en pantalla cambian con el modo de imagen.
El origen de graficos es la esquina inferior izquierda, y supone que la
pantalla esta en todo momento en el modo de alta resolucion -aunque
los calculos de tintas seran efectuados correctamente en todos los modos
de imagen.
NB
En el modo normal de pantalla, cada pixel tiene DOS direcciones
horizontales, y se puede usar una u otra. En el modo multicolor, cada
pixel tiene CUATRO direcciones horizontales, y cualquiera de las cuatro
puede usarse para definir la posicion del pixel.
El eje vertical tiene coordenadas de a 399 que son divididas por dos
y truncadas para dar la posicion fi'sica en la gama a 199. Eso asegura
que las relaciones de aspecto esperadas se preservan en pantalla.
ROMS de expansion
Todas las ROMS ocupan los 16K de la cima de la memoria (donde reside
el BASIC) y hay facilidades en el firmware para citar a 240 adicionales,
16K extra ROMS. Debe emplearse externamente una cierta cantidad
de circuitos decodificadores de direcciones a la maquina base como parte
del hardware de expansion ROM).
Panoramica:
Un breve resumen de las principales caracterlsticas del hardware y
firmware del CPC464
1) Hardware
1.1) Dentro de la carcasa principal CPC464:
Computador, teclado, cassette y altavoz. Salidas RGB y luminancia.
1.1.1) LSI Chips
Z80A un procesador ejecutando a 4MHz.
64K bytes de 64K x 1 RAM dinamica refrescada por accesos a la memoria
de pantalla.
Apendice IV Pagina 4-
GENERALIDADES PARA EXPERTOS
32 K bites de ROM conteniendo BASIC y el sistema operativo (OS).
Una ringla logica customizada, incorpora casi toda la logica no incluida
previamente en los chips LSI; particularmente temporizacion, generacion
de color y circuiteria DMA.
La pastilla controladora CRT 6845 genera senales de barrido para la RAM
video.
NB
El mapa de memoria es complejo y cambia con el modo de pantalla. El
CRTC puede usarse para efectuar despliegue (lateralmente para anchura
de pantalla 1/40) y arrolle (arriba y abajo cada 8 lineas de barrido) si
el software lo requiere. Los parametros dentro del CRTC seleccionan
el numero de lineas, la cadencia de cuadro, la anchura y posicion de los
bordes.
El chip generador de sonido GI AY-3-8912: 3 boces. El sonido se toma
de los 3 canales y se mezcla equilibradamente para producir una salida
mono en el altavoz incorporado, controlado por perilla de volumen. Tambien
hay una salida externa estereo donde...
Izquierda=Canal A + 1/2 Canal C. Derecha=Canal B + 1/2 Canal C.
Este chip tambien recibe informacion del barrido de los portales del teclado
y joysticks.
Una pastilla parajelo I/O 8255 interconecta el bus al chip de sonido GI.
Tambien explora el teclado, portal de joystick, eslabones de opcion y
controla el cassette.
1.1.2) Enchufes externos
Conectores de borde PCB para expansiones de proposito general (12) y
una impresora externa (12) (paralelo Centronics). Enchufes para joystick
(14) (9 pines D-Tipo), salida estereo de sonido (15), salida video (10)
(RGB y sync o video compuesto o luminancia y sync).
1.2) Fuera de la carcasa
El sistema CPC464 viene con una eleccion de dos clases de entrada directa
de monitor de video, incluyendo cada una, una fuente de alimentacion
5V para el ordenador, disenado para adaptarse a los standards locales
de voltaje de red en el pais de venta. Ademas, hay una PSU opcional
y un modulador UHF TV, el MP1.
Se requeriran cables para conectar una impresora compatible Centronics
y una unidad Hi-fi.
1.3) Especificacion de pantalla
La pantalla opera en 16K de memoria. La maquina tiene un surtido de
27 colores que pueden ser elegidos libremente para formar una paleta.
El numero de tintas en la paleta depende del modo de pantalla. Ciertas
tintas pueden fijarse al mismo color si se requiere. Los pixels de la pantalla
se definen como motas de una tinta particular.
— — Apendice IV Pagina 5-
GENERALIDADES PARA EXPERTOS
(Nota que el fondo, o papel, requiere una tinta de la paleta disponible).
Hay un BORDER rodeando el area activa de imagen que puede fijarse
independientemente a cualquiera de los 27 colores.
Modo
Normal
Alta Res.
Multicolor
N5 de tintas Motas verts
Motas horiz Chars horiz
4
1
16
200
200
200
320
640
160
40
80
20
NB: El ordenador producira un efecto de escala de grises si se proyecta
sobre un monitor monocromo. El orden de los colores en brillo creciente
es como sigue:
TABLA MAESTRA DE COLORES
N5 Tinta
Color Tinta
N5 Tinta
Color Tinta
Negro
It
Azul Pastel
1
Azul
15
Naranja
2
Azul Brillante
16
Rosa
3
Rojo
17
Magenta Pastel
it
Magenta
18
Verde Brillante
5
Malva
19
Verde Marino
6
Rojo Brillante
20
Ciano Brillante
7
Purpura
21
Verde Lima
8
Magenta Brillante
22
Verde Pastel
9
Verde
23
Ciano Pastel
10
Ciano
2t
Amarillo Brillante
11
Azul Cielo
25
Amarillo Pastel
12
Amarillo
26
Blanco Brillante
13
Blanco
1.4) Mapa de Memoria
Los 64K de RAM se reparten como sigue:
Observa que parte de la ROM solapa la RAM de pantalla, por lo tanto
liberando el area maxima posible para la RAM de usuario durante las
operaciones BASIC.
ROM SECTION <
OOOOH
3FFFH
4000H
7FFFH
8000H
BFFFH
ROM SECTION 1 <
C000H
FFFFH
> RAM [Screen 3]
^ — Apendice IV Pagina 6*
GENERALIDADES PARA EXPERTOS
Cuando hay ambas, RAM y ROM, en una direccion, entonces READING
accesa la ROM y WRITING accesa la RAM. Ademas, la seccion ROM
puede ser desactivada, permitiendo accesar para leer la RAM en la misma
direccion.
1.5) Habilidad de ampliacion
1.5.1) ROMS colaterales
Esta hecha la provision para que puedan elegirse ROMS adicionales en
lugar de cualquier parte de la ROM incorporada. El arbitraje de direcciones
y la logica de seleccion de bancadas estara contenida en un modulo ^
conectado al bus de expansion, pero todas las senales requeridas estan
llevadas al bus de expansion.
1.5.2) RAM adicional
Se puede conmutar RAM adicional en cualquier parte de la RAM
incorporada. El arbitraje de direcciones y la logica de seleccion de
bancadas estara contenida en un modulo conectado al bus de expansion,
pero todas las senales requeridas estan traidas al bus de expansion. Esta
memoria sera solo de lectura y un esquema especial involucrando mapas
y/o se requerira para escribir en esta rama adicional desde el ordenador.
1.5.3) I/O Adicional
La mayoria de las direcciones de portales I/O estan reservadas por el
ordenador, y en particular las direcciones por debajo 7Fxx no seran usadas
en absolute Lo siguiente puede ser usado por hardware externo.
F8xx, F9xx, FAxx, FBxx
El bus de expansion para perifericos debe decodificar las direcciones
en AO a A7 mientras que la direccion A10 esta baja. Los canales I/O
del bus de expansion en la gama de direcciones F800 a FBFF estan
reservadas como sigue:
Addresses A0-A7
00 - 7B "Do not use"
7C - 7F Reserved for disk interface
80 - BB "Do not use**
BC - BF Reserved for future use
CO - DB "Do not use"
DC - DF Reserved for communications interfaces
E0 - FF Available for user peripherals
Observa que las instrucciones Z80 que colocan el registro B en la parte
superior del bus de direcciones (A15-A8) debe usarse.
Apendice IV Pagina 7-
GENERALIDADES PARA EXPERTOS
2) Teclado
Un restaurado completo se opera al pulsar conjuntamente CTRL, SHIFT
y ESC. Las teclas que provocan caracteres visivos o movimientos de cursor
repetiran automaticamente bajo control del firmware, excluyendo todas
las teclas del tablero numerico.
ESC suspende la ejecucion del programa. Seguido de otro ESC termina
la ejecucion. Seguido por cualquier otro caracter, reanuda la ejecucion
del programa.
CAPS LOCK es un basculador, operado por la tecla de enclavamiento
de mayusculas. El enclavamiento del turno mayusculas/minusculas es
un basculador operado por CTRL, CAPS LOCK pulsadas conjuntamente.
El cursor de copia se separa del cursor de entrada, operando SHIFT junto
con las teclas de cursor. La entrada en el buzon puede conseguirse para
el caracter debajo del cursor de copia, pulsando la tecla COPY.
Las teclas de cursor estan pensadas para permitir la edicion del buzon
de entrada, que puede ocupar unas cuantas lineas de pantalla. Las teclas
de cursor pueden usarse para colocar el comienzo de la imposicion por
teclado en cualquier posicion de pantalla anterior a cualquier ingreso
por teclado que se este recibiendo. Una vez que se ha recibido cualquier
ingreso por teclado se prefija la posicion de pantalla. El nuevo texto
ingresado sobreescribira cualquier contenido existente en la pantalla en
esa posicion.
DEL es supresion retrocediendo y CLR es supresion avanzando.
•Apendice IV Pagina &-
INTERCONEXIONES DE USUARIO
Apendice V:
Conexion del panel posterior al CPC464
5VDC
MONITOR
PADDLE PORT CONNECTOR (9 PIN D)
VIEWED FROM REAR
PIN 1
UP
PIN 6
FIRE 2
PIN 2
DOWN
PIN 7
FIRE 1
PIN 3
LEFT
PIN 8
COMMON
PIN 4
RIGHT
PIN 9
COM 2
PIN 5
SPARE
VIDEO OUTPUT CONNECTOR (6 PIN DIN)
VIEWED FROM REAR
PIN
1
RED
PIN
4
SYNC
PIN
2
GREEN
PIN
5
GND
PIN
3
BLUE
PIN
6
LUM
Apendice V Pagina 1-
INTERCONEXIONES DE USUARIO
EXPANSION PORT 50 WAY 0.1 EDGE CONNECTOR
VIEWED FROM REAR
49 47 45 43 41 39 37 35 33 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1
50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2
PIN
1
SOUND
PIN 18
A0
PIN 35
INT
PIN
2
GND
PIN 19
D7
PIN 36
NMI
PIN
3
A15
PIN 20
D6
PIN 37
BUSRD
PIN
4
A14
PIN 21
D5
PIN 38
BUSAK
PIN
5
A13
PIN 22
D4
PIN 39
READY
PIN
6
A12
PIN 23
D3
PIN 40
BUS RESET
PIN
/
A11
PIN 24
D2
PIN 41
RESET
PIN
8
A10
PIN 25
D1
PIN 42
ROMEN
PIN
9
A9
PIN 26
DO
PIN 43
ROMDIS
PIN
10
A8
p:n 27
-i 5v
PIN 44
RAMRD
PIN
11
A7
PIN 28
MREQ
PIN 45
RAMDIS
PIN
12
A6
PIN 29
M1
PIN 46
CURSOR
PIN
13
A5
PIN 30
RFSH
PIN 47
L. PEN
PIN
14
A4
PIN 31
IORQ
PIN 48
EXP
PIN
15
A3
PIN 32
RD
PIN 49
GND
PIN
16
A2
PIN 33
WR
PIN 50
PIN
17
A1
PIN 34
HALT
PRINTER PORT 34 WAY 0.1 EDGE CONNECTOR
VIEWED FROM REAR
17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
^e:
35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19
PIN 1
PIN 19
GND
STROBE
PIN 2
DO
PIN 20
GND
PIN 3
D1
PIN 21
GND
PIN 4
D2
PIN 22
GND
PIN 5
D3
PIN 23
GND
PIN 6
D4
PIN 24
GND
PIN 7
D5
PIN 25
GND
PIN 8
D6
PIN 26
GND
PIN 9
D7
PIN 27
GND
PIN 11
BUSY
PIN 28
GND
PIN 14
GND
PIN 33
GND
PIN 16
GND
All other
pins NC
Apendice V Pagina 2-
INTERCONEXIONES DE USUARiO
GATE ARRAY
SYNC
+ 5
<680
220
■VvW-
+ 5
<680
+ 5
<680
220
-VWW
220
+ 5
3k3 .
10k
Ik
SOUND
GENERATOR
\Sy—w^-
.680
220
S220
'o
1* RED
GREEN
J BLUE
LUM
-0 SYNC
5
° GND
SOUND TO INTERNAL
"*" AMPLIFIER & SPEAKER
> 10K > 10K >
SOUND
TO EXP
•m
10K > > 22K > > 10K
STEREO
SOUND
CONNECTOR ^ GND
(stereo jack)
VIDEO
OUTPUT
CONNECTOR
(6PIN DIN)
Apendice V Pagina
PLANTILLAS
Apendice VI:
Reticula de TEXTO y VENTANA
MODO 20 columnas
-Apendice VI Pagina 1-
PLANTILLAS
Reticula de TEXTO y VENTANA
MODO 1 40 columnas
s
01
s
R
"
S
a
n
"
s
a
* i
~
~
~
t
f!
H
K
?
2
ss
t
(0
*
3
9
Apendice VI Pagina 2-
PLANTILLAS
Reticula de TEXTO y VENTANA
MODO 2 80 columnas
s
*
r~
fi
M
pi
*
S
<i
(O
a
Si
K
3
W
i*
*
IO
*
3
3
8
S
S
m
°
8
V
S
N
8
»
(O
*
™
o
»
IO
«
(N
n a> o r~
■Apendice VI Pagina
PLANTILLAS MUSICALES
Apendice VII:
Notas y Periodos de Tono
La tabla que sigue da los ajustes recomendados de periodos de tono para
notas en la escala usual de pentagrama para la gama completa de 8 octavas.
La frecuencia producida no es exactamente la frecuencia requerida porque
el ajuste de periodo tiene que ser un entero. El error relativo es el cociente
de la diferencia entre las frecuencias requerida y real dividido por la
frecuencia requerida, i.e: (REQUERIDA-ACTUAL)/(REQUERIDA).
NOTE
FREQUENCY
C
32.703
c#
34.648
D
36.708
D#
38.891
E
41.203
F
43.654
F#
46.249
G
48.999
G#
51.913
A
55.000
A#
58.270
B
61.735
NOTE
FREQUENCY
C
65.406
C#
69.296
D
73.416
D#
77.782
E
82.407
F
87.307
F#
92.499
G
97.999
G#
103.826
A
110.000
A#
116.541
B
123.471
PERIOD
3822
3608
3405
3214
3034
2863
2703
2551
2408
2273
2145
2025
PERIOD
1911
1804
1703
1607
1517
1432
1351
1276
1204
1136
1073
1012
RELATIVE ERROR
-0.007%
+0.007%
-0.007%
-0.004%
+0.009%
-0.016%
+0.009%
-0.002%
+0.005%
+0.012%
-0.008%
+0.011%
RELATIVE ERROR
-0.007%
+0.007%
+0.022%
-0.004%
+0.009%
+0.019%
-0.028%
+0.037%
+0.005%
-0.032%
+0.039%
-0.038%
Octave -3
Octave -2
-Apendice VII Pagina 1
PLANTILLAS MUSICALES
NOTE
FREQUENCY
PERIOD
RELATIVE
ERROR
C
130.813
956
+0.046%
c#
138.591
902
+0.007%
D
146.832
851
-0.037%
D#
155.564
804
+0.058%
E
164.814
758
-0.057%
Octave -1
F
174.614
716
+0.019%
F#
184.997
676
+0.046%
G
195.998
638
+0.037%
G#
207.652
602
+0.005%
A
220.000
568
-0.032%
A#
233.082
536
-0.055%
B
246.942
506
-0.038%
NOTE
FREQUENCY
PERIOD
RELATIVE ERROR
C
261.626
478
+0.046%
Middle C
c#
277.183
451
+0.007%
D
293.665
426
+0.081%
D#
311.127
402
+0.058%
E
329.628
379
-0.057%
Octave
F
349.228
358
+0.019%
F#
369.994
338
+0.046%
G
391.995
319
+0.037%
G#
415.305
301
+0.005%
A
440.000
284
-0.032%
International A
A#
466.164
268
-0.055%
B
493.883
253
-0.038%
NOTE
FREQUENCY
PERIOD
RELATIVE
ERROR
C
523.251
239
+0.046%
c#
554.365
225
-0.215%
D
587.330
213
+0.081%
D#
622.254
201
+0.058%
E
659.255
190
+0.206%
F
698.457
179
+0.019%
Octave 1
F#
739.989
169
+0.046%
G
783.991
159
-0.277%
G#
830.609
150
-0.328%
A
880.000
142
-0.032%
A#
932.328
134
-0.055%
B
987.767
127
+0.356%
L
Apendice VII Pagina 2
PLANTILLAS MUSICALES
NOTE
FREQUENCY
PERIOD
RELATIVE ERROR
C
1046.502
119
-0.374%
c#
1108.731
113
+0.229%
D
1174.659
106
-0.390%
D#
1244.508
100
-0.441%
E
1318.510
95
+0.206%
F
1396.913
89
-0.543% Octave 2
F#
1479.978
84
-0.548%
G
1567.982
80
+0.350%
G#
1661.219
75
-0.328%
A
1760.000
71
-0.032%
A#
1864.655
67
-0.055%
B
1975.533
63
-0.435%
NOTE
FREQUENCY
PERIOD
RELATIVE ERROR
C
2093.004
60
+0.462%
C#
2217.461
56
-0.662%
D
2349.318
53
-0.390%
D#
2489.016
50
-0.441%
E
2637.021
47
-0.855%
F
2793.826
45
-Mm °^« 3
F#
2959.955
42
G
3135.963
40
+0.350%
G#
3322.438
38
+0.992%
A
3520.000
36
+1.357%
A#
3729.310
34
+1.417%
B
3951.066
32
+1.134%
NOTE
FREQUENCY
PERIOD
RELATIVE ERROR
C
4186.009
30
+0.462%
c#
4434.922
28
-0.662%
D
4698.636
27
+1.469%
D#
4978.032
25
-0.441%
E
5274.041
24
+1.246%
F
5587.652
22
-1.685% Octave 4
-0.548% ucrave 4
F#
5919.911
21
G
6271.927
20
+0.350%
G#
6644.875
19
+0.992%
A
7040.000
18
+1.357%
A#
7458.621
17
+1.417%
B
7902.133
16
+1.134%
Estos valores estan todos calculados a partir de la A internacional:
FREQUENCY = 440* (2 t (0CTAVE+( 10-N) /12) )
PERIOD= ROUND(125000/FREQUENCY)
donde N es 1 para C, 2 para C#, 3 para D, etc.
-Apendice VII Pagina 3
PLANTILLA5 MUSICALES
Retfcula para musica/envolventes
1
bbbbbbbbb!
^^^^^^H
■
■aaa
aaaa
:
aaaaaaaaa aaaaaaaaa
■aaaaaaaa aaaaaaaaa
aa
■ ■
■aaa
■aaa
laaaSBaaaaBaBaisaaaaaaBaaiaaaaaaa;
■•■•■■■■•••■••■••2222222222!
aaaa
aaaa
IB
■ ■
■ ■BB
■aeaiieaeaaBBaaiaaaaaeaai laaaaaeai
aaaaaaaaaa* aaaaaaaaai 22222!
•aaaaaaaaaa laaaaaeaai aaaaaa
•■aaaaaaaaa aaaaaaaaaa aaaaaa
BBBB
BBBB
■aaaaaaaa aaaaaaaaa
■ ■
Baa
BeaaSaaaaeaeeeeiaeaeseBeeiaeeeaaei
■BaaiiaaaaaBaaaiaaaaaaBBaiaaaaaaai
SaaaaaaaBBa aaaaaaaaaa aaaaaai
BBBB
■ a
■ a
■aaa
■aaa
•aeeeeeeaaaeeeaaaeeeeeee* laaasaeei
a aaaaaaaaaa aaaaaaaaaa aaaaaai
a aaaaaaaaaa aaaaaaaaaa aaaaa *i
aaaa
aaaa
■ a
■aaa
BaaaeBaaaaaaaas aaaaaaaaaa •aaaaBaai
aaaaaaaaaa* aaaaaaaaaa ••■■■;<
aaaa
■ a
■ a
aaaa
IBBfl
aaaaaaaaaaaaBaaaaaaaaaaaetaaaaaaai
a aaaaaaaaaa aaaaaaaaai aaaaaai
a aaaaaaaaaa aaaaaaaaaa aaaaaai
aaaa
aaaa
aa
aa
aaaa
■aaa
iaaaiSaaaaaaaaaaaaaaaaaaKaaaaaaai
Saaaitaaaaaaaaaiaaaaaaaai taaaaaaai
••aaaaaaaaa aaaaaaaaai aaaaaa;
aaaa
BBBB
aa
aaaa
aaaaa aaseeeeaaaeeeeseeeee Beeeeeeai
aaaaaaaaaaaaaaaaa aaaaaaaa •aaaaaaaa
a aaaaaaaaaa aaaaaaaaaa aaaaaai
a aaaaaaaaa* aaaaaaaaa* aaaaaai
aaaa
aa
aa
aaaa
aaaa
■aaaa •■•aaaaaaa •••■aaaaaa aaaaaaaai
•aaaaaaaaai aaaaaaaaaa ■■•aaai
aaaa
BBBB
ii
aaaa
aaaaaaaBaaaaaaaaaaaaaaaaaiaaaaaaai
a aaaaaaaaaa aaaaa aaaaaaaaaaai
aaaa
■ a
aaaa
aaeaBieeeaieaeiiaeaeeaeea ■eeeeeeei
a ■••••■•••• aaaaa aaaaa aaaaaai
a aaaaaaaaaa aaaaaaaaaa aaaaaa
• •■■•■••■■• laaaaaaaai aaaaaa
a aaaaaaaaaa aaaaaaaaaa aaaaaa
a aaaaaaaaaa aaaaaaaaaa aaaaaa
BBBB
»>>•>••••••••••"•••••!*•••:::!!
aaaa
aaaa
■ a
aaaa
■ a
aaaa
eeBBiiaeaaieeeiiesaeiasai leeeeeaai
aaai! aaaaaaaaaaaaaaaaaaat laaaaaaai
a aaaaaaaaaa aaaaaaaaaa aaaaaa
a aaaaaaaaaa aaaaaaaaaa aaaaa a
aaaa
aaaa
aaaa
■aaaaaaaa aaaaaaaai
■ a
aaaa
■ a
aaaa
■aaai aeaaaaaaaa aaaaaaaaa* •aaaaaaa;
a aaaaaaaaaa aaaaaaaaaa aaaaaa
aaaa
aaaa
■ a
aaaa
•••■■■• •••■! 22222222!
■ ■aaaiiaiai ■■■■■■■■•• ■■■■■■
aaaa
aa
■ i
aaaa
aaaa
■■■•■■•••■•■•■•••••■••mi aaaaaaaai
•Mil ■•■■■■■■•■■■■■•■■■•* ■•■■■■■■I
aaaaasaaaaaaaaaaaaaaaaaai aaaaaaaai
■aaaaaaaaai aaaaaaaaaa aaaaaa
a aaaaaaaaaa aaaaaaaaaa aaaaaa
laaaaBBaaaaaaaBBBBaaaa aaaaaa
aaaa
aaaa
■ ■
■ ■
aaaa
■aai
aaaa! aaeaeaaBBaaaeaseaaei ■■eaaaaai
eaaaiiase***aaiieeeaeesea aaaaaaaai
a aaaaaaaaai aaaaa aaaa* aaaaa a
■a aaaaaaaaaa aaaaaaaaaa aaaaaa
BBBB
aaaa
■ a
IB
aaaa
HBBI
aaaaaaaaaaaaaaaaaaaaaaaa! laaaaaaai
aaeaiaaaaaaaaaaaaaaaaaaai aaaaaaaa
la aaaaaaaaaa aaaaaaaaaa aaaaaa
la aaaaaaaaaa aaaaaaaaaa aaaaaa
ii aaaaaaaaai aaaaa aaaaa aaaaaa
aaaa
aaaa
■ a
aa
aa
aaaa
aaaa
aaaa
aaaaaaaaaeeaeeaaaaaaaeaaeiesaaeaai
■!■■■■■■■■■■••■■■■•■■■■ >■■■■■
eaaaa aaaeeaeaee eaaaa aaeai aaaaaaaai
la aaaaa aaaai aaaaaaaaaa aaaaaa
■a aaaaaaaaaa aaaaaaaaaa aaaaaa
(■■■■■■•■■•I ■■■■■■■>■■■■■■■•
aaaa
aaaa
aaaaaaaaa aaaaaaaaa
■ ■
■aai
■•aaiiaaBaaaaeaiaaaiiaaaiBeiaaaaa;
ii aaaaa aaaaa aaaaa •■■•• aaaaaa
ia aaaaa aaaaa aaaaaaaaaa aaaaaa
BBBB
aaaa
aa
aaaa
■aaaa aaaaaaaaaaaaaeaaaaai aaaaaaaai
la aaaaaaaaea aaaaaaaaaa BBBaaa
aaaa
aa
aaaa
■aaaaaaaaiaaaaiaaaaaaaaaiaaaaiaaai
ia aaaaa aaaaa aaaaaaaaaa aaaaaa
IB BBBBB BaBBB BBBBBBBBBB ■■■■•■
aaaa
aa
aa
aaaa
aaaa
aaaaaaaaaaaaaaaaaaaaaaaa* *aaaaaa«i
■■■■■ ■■■■■■•■■■ •■■■>■*"■ ■"!!!■!"!
IB aaaaa aaaaa aaaaaaaaaa aaaaaa
ia aaaaa aaaaa aaaaeaaaaa aaaaaa
aaaaaaaai
aaaa
aaaa
BB
Bfl
aaaa
aaaa
■aaaiiBaaaaaiaiaaaaaaaaaiiaa****;;
iBBBBBBaaBBBBBBaaaBaaaaaBaBB
ia aaaaa BBaaa aaaaaaaaaa aaaaaa
■a •■■■■■■■■• aaaaaaaaaa aaaaaa
laaaaaaaaaaeiBaaaaaaaeiaaaea
laiaaaaaaaaa aaaaaaaaaa aaaaaa
ib aaaaaaaaaa aaaaaaaaaa aaaaaa
BBBB
BBBB
aaaa
aaaa
aaaa
aaaa
■ ■
aa
aa
aaaa
aaaa
•• ••■■•• 22222222!
aa
■ a
aaaa
aaaa
aaaaa aaaaaaaaa* laaaaaaaat aaaaaaaai
■■■■■■■■•■•■•■■■■■■■•••■■■■■■•■••I
ii ■■■■■■■■» ■■•■■■■■■■ ■■■■■■
aaaa
aaaa
aaaa
aeeeeaeeeeeeejeaeea
aa
aa
aaaa
aaaa
aaaaa aaaaaaaaaa aaaaa aaaaa aaaaaaaai
■•••••aaaaaaaaa •••••aaaai aaaaaaaai
ia aaaaaaaaaa aaaaaaaaaa aaaaaai
ia aaaaaaaaai aaaaaaaaaa aaaaaa
■ a
aa
aaaa
aaaa
aaaaa aaaaaaaaaa aaaaaaaaai ■•■■•aaa
laaaaaaaaaaB aaaaaaaaaa aaaaaa
ia aaaaaaaaaa aaaaaaaaaa laaaaai
ia aaaaaaBaaa aaaaaaaaaa aaaaaai
■a aaaaa aaaaa aaaaaaaaaa aaaaaai
iBaaaaBaaBaaBaaaaBBBBa aaaaaai
aaaa
aaaa
aaaa
aa
■aaa
eaaaiiaaaaaaaaaaaaaaaaaaiiaaaaaaa
aaaa
aaaaaaa
aaaaaaa
aaaaaaa
■ i
■aaa
ia ••■•■■■■■• aaaaaaaaae aaaaaai
■a aaaaa aaaaa aaaaaaaaaa aaaaaai
ia aaaaaaaaai aaaaaaaaaa aaaaaai
ia aaaaaaaaai aaaaaaaaaa aaaaaai
aaaa
aeea
aaaa
aa
aaaa
aa
aa
aaaa
aaaa
aaaaa aaaaaaaaaa aaaaa aaaa* aaaaaaaa
ia aaaaaaaaai •■•••••••• aaaaaai
ia aaaaaaaaaa aaaaaaaaae aaaaaa
ia aaaaa aaaaa •■■■■•••■■ aaaaaai
■a aaaaa aaaaa aaaaaaaaaa aaaaaai
laaaaBBBaBaaaaaBaaaaaaiBBBaai
ia aaaaaaaaaa aaaaaaaaaa aaaaa ai
aaai
aaaa
aaaa
aaaa
aaa*
aa
aa
aaaa
■ l
■aai
■ a
aa
aaaa
aaaa
■a aaaaaaaaaa aaaaaaaaaa aaaaaai
■a aaaaa aaaaa aaaaaaBaaa aaaaaai
aaaa
aaaa
■ 1
aaaa
ia eaaaa aaaaa aaaaaaaaaa ■■■•••<
aaaa
aaaa
aa
ai
aaaa
aaai
■a BBBaaaaaBiaaaaaaaaBB aaaaaai
■■■■■•••■•■■■■■•■■■■■•••■■■•I
aaaa
BBBB
aa
aa
aaaa
aaaa
ib aaaaaaaaai laaaaaaaaa aaaaaai
ii •••aaaaaaa *aaaaaaaai aaaaaai
BBBB
■aaa
■a aaaaaaaaaa aaaaaaaaaa aaaaaai
aaaa
aaaa
BBBB
aa
aaaa
■ a
aa
aa
aaaa
aaaa
aaaa
ib aaaaaaaaaa aaaaaaaaaa aaaaa bi
aaaa
ia eaaee eaaaa aeaaaeeaaa eaaaa ai
BBBB
■ a
■ i
aa
aaaa
aaaa
aaaa
ia aaaaa aaaai ■•■•aaaaaa laaaaai
■a aaaaaaaaa* aaaaaaaaaa aaaaaai
■a eaaaa aaaaa aaaaaaaaaa aaaaaai
BBBB
BBBB
aaaa
aaaa
■aaa
BBBB
aaaa
aaaa
aaaa
aaaa
aaaa
■ i
■aai
■• ie*****aa*iaaaaia**i ■•••■•
■a ■■■•• aaaaa ■•■■■■2222222222
■••■■■•■••••■■■■■■2222222222
■aeaaaaeeaaaaaaeeeeeeeaaeaeei
■a eaaaa eaaaa aaeeeeeeeaaaaeeei
in •■ !!!'!*!!!'
ia aaaaa aaaaa ■■■■■■■■■■•22222
aa
BBBB
aa
aa
aaaa
aaaa
aa
aaaa
aa
aaaa
■a aaaaaaaaaa aaaaaaaaaa aaaaaaa
aaaa
BBBB
IBBB
BBBB
BBBB
BBBB
BBBB
aaaa
Bl
■aai
laaaaaaaaaaaeaaaaeaaaeaaaeaea
ia aaaaaaaaae aaaaaaaaaa eaaaaai
laaBaaaaaaaasaaaaBaaaeeaaaaai
ia aaaaaaaaaa aaaaa aaaa* **aaaai
■a aaaaaaaaaa aaaaaaaaae aaaaaaa
■ 1
■ 1
Bl
■aai
■aaaa aaaaaaaaaa aaaaaaaaai aaaaaaaa
aa
aaaa
aaaaa aaaaaaaaaa aaaaaaaaai aaaaaaaa
BB
aaaa
iaaaa aaaaeaaaaa aaaaa aaaaiaaaeaaea
■a aaaaaaaaae eaaaaaaaaa aaaaaai
BBBB
BBBB
aaaaaaaaa aaaaaaaaa
aa
aaaa
■ aaai aaaaaaaaaa aaaaaaaaai iaaaaaaa
■a aaaaaaaaaa aaaaaaaaae eaaaaai
■a aaaaeaaaaa *eaaaaeaaa*aaeae;
BBBB
■■■a
aa
aaaa
aaaaaaaaaaaaaaaaaaaaaaaa* •■••• •••
aaaaaaaaa aaaaaaaaa
aa
■a aaaaaaaaaa eaaaa aaaaa eaaaaei
■a aaaaaaaaaa *eeeeaeeee eaaaaai
■a aaaaaaaaaa aaaaaaaaaa aaaaaai
■a aaaaaaaaai aaaaaaaaaa eaaaaai
■a leeeeaeeae aaaaaaaaaa eaaaaai
■a aaaaaaaaaa aaaaaaaaaa aaeaeei
■a laeeeeeeai aaaaaaaaaa aaaaaai
■a aaaaaaaaaa aaaaaaaaaa eaaaaai
BBBB
BBBB
aaaa
BBBB
aaaa
aaaa
■■■a
aaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aaaaaaa
aa
ai
Bl
Bl
ai
ai
BBBB
aaaa
aaaa
aaai
aaai
aaaa
aaaa
•■•ai ••■••■■■■•aaaaaaaaaa aaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaa* aaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaa* iaaaaaaa
*•■••••••••■■■• iaaaaaaaSi "222222
aaaaeaaaaaaaaaaaaaaaaaaaa ••■■■•22
aaaaa aaaaaaaaaa aaaaa ■■■••••222222
aaaaa aaaaaaaaaa aaaaaaaaai aaaaaaaa
m v m fsi
cm n * \ti is
■Apendice VII Pagina H
GLOSARIO
GLOSARIO DE TERMINOS
Algunos terminos usados comiinmente en el mundo informatico,
explicados para los usuarios del CPC464...
Acoplador Acustic Couper
Tambien se le llama Modem Acustico, y es un dispositivo electronico en
el que se puede apoyar el microfono y el audffono del aparato de abonado,
y que adapta las senales del ordenador a las senales necesarias en la red
telefonica. De esta forma, el ordenador se pone en comunicacion con
sistemas de informacion publica (PRESTEL, VIDEOTEXT...) o con otros
usuarios para intercambiar informacion, programas, etc.
Acumulador Accumulator
Un circuito electronico incorporado en el microprocesador, o un lugar
especi'fico de la memoria, por el que pasa la inmensa mayorfa del trafico
de datos y operandos, y donde se acumula el resultado de las operaciones
efectuadas. Se usa constantemente al programar en codigo maquina,
pero en BASIC es como si no existiese.
Alfanumerico/Alfamerico Alphanumeric/ Alphameric
No usado en BASIC. Sf en otros lenguajes donde es atributo de un dato
cuando puede incluir caracteres literales (alfabeticos) y numerales. El
equivalente en BASIC son los "lfteros".
Algebra de Boole Boolean algebra
Estructura de matematicas con proposiciones y relaciones logicas que
solo pueden tener dos respuestas: cierto o false En estrecha relacion
con el sistema binario, simbolizando con 1 y respectivamente.
Algoritmo Algorithm
De la misma raiz arabe que 'guarismos', designa la secuencia de
operaciones aritmetico-logicas que detalla el metodo a seguir para ejecutar
una determinada tarea.
AMSOFT AMSOFT
Division especializada de AMSTRAD, suministrando programas, perifericos,
y publicaciones primordialmente para el CPC464 y sus muchas aplicaciones.
Analfabetismo moderno Iliteracy
En breve plazo se considerara oficialmente analfabeto a aquel que no
tenga conocimientos informaticos.
Pagina G.l
GLOSARIO
Animacion Animation
Tornado de los 'dibujos animados 1 . La animacion por ordenador esta basada
en el movimiento de figuras y graficos para simular movimientos 'vivos'.
Apreton (de manos) Handshaking
Protocolo electronico entre dos ordenadores, o entre ordenador y periferico,
antes del intercambio de informacion entre ellos.
Argumento Argument
Variable independiente de una funcion matematica (v.g. en la expresion
z=x+lg(y) la y es el argumento de la funcion logarftmica que interviene).
Arquitectura Architecture
Estrategia en la construccion de un sistema informatico, organizando
las relaciones y conexiones entre los diferentes equipos que lo componen.
Tambien y en especial la estructura interna del ordenador con sus
circuitos procesadores, memorizadores, canalizadores, etc.
Arranque/'Botadura* Booting/Bootstrapping
Puesta en marcha de la maquina. En especial cuando hay un pequeno
programa grabado permanente e indeleblemente en la maquina, encargado
de IMPLANTAR en memoria el sistema operativo del ordenador residente
hasta entonces en un medio auxiliar de almacenamiento.
ASCII American Standard Code for Information Interchange
Convenio Internacional que establece la equivalencia entre codigos binarios
y caracteres visivos y de control empleados en el intercambio de
informacion entre equipos informaticos.
Aviso Prompt
Simbolo o mensaje tipico -la divisa- que caracteriza a un ordenador,
e indica al usuario que esta preparado para recibir sus comandos e
instrucciones. En el CPC464 es la palabra Ready (Dispuesto).
Aleatorio Random
Azar
Fenomeno que no es predecible ni repetible. En los ordenadores suelen
existir generadores de numeros aleatorios que realmente producen una
secuencia de numeros reales tan grande que es practicamente imposible
de apreciar la falsedad (los puristas le llaman pseudo-aleatorio).
Barrido en rastrillo Raster scan
Exposicion de imagenes visuales mediante varios haces proyectores que
la recorren segun lfneas paralelas (en lugar del barrido habitual con un
solo haz en zig-zag).
Pagina G.2 *
GLOSARIO ■
Base Base
Cardinal del conjunto de si'mbolos sobre el que se constituye un sistema
de numeracion. El sistema binario tiene base 2 (y emplea 2 si'mbolos);
el decimal tiene base 10 (y 10 si'mbolos); y el hexadecimal base 16 (y
16 si'mbolos).
Base/Banco de datos Database
Conjunto organizado de. datos, de diversas clases y heterogeneos, y
accesibles por diversos conceptos, utilizados por varios ordenadores
locales o remotos.
BASIC BASIC
Beginners All-purpose Symbolic Instruction Code. Lenguaje usado por casi
todos los ordenadores personales, pensado en su origen para
PRINCIPIANTES y ampliamente desarrollado por su facil aprendizaje y
su capacidad de preparar programas y comprobar su funcionamiento
a medida que se van perfeccionando. En la actualidad esta completamente
evolucionado y ademas de principiantes es usado por programadores
experimentados en todas las partes del mundo.
Baudio Baud
Unidad en un principio telegrafica para transferencia de senales binarias,
expresada en intervalos por segundo. (En las transmisiones habituales
coincide con bitos por segundo).
BCD Binary Coded Decimal
Sistema de representacion de los diez si'mbolos (di'gitos) del sistema de
numeracion decimal en grupos de cuatro si'mbolos binarios.
Binario Binary
(Vea Base). Sistema de numeracion de base 2.
Bico Byte
Bito Bit
Bitio Bit
Cualquiera de los dos si'mbolos (0 y 1) usado en el sistema de 'numeracion
binario se denomina bito. La unidad de informacion-incertidumbre de un
suceso (relacionada con el logaritmo de la probabilidad del mismo) es
el bitio, cuando el logaritmo se toma en base 2.
El grupo de bitos tratados a la vez por los circuitos electronicos de los
equipos informaticos se denomina bico. En los ordenadores personales
con microprocesadores de OCHO BIToS es exactamente equivalente a
octeto.
Pagina G.3
GLOSARIO
Bit mas significativo MSB
En un numero binario el bit anterior del numero (BAN) y que por tanto
ocupa la posicion extremo-izquierda. Su peso es de 2 7 =128 (con bicos
de 8 bits) y 2 15 =32768 (en 'bicos' direccionales de 16 bits).
Bit menos significativo LSB
En un numero binario en bit ulterior del numero (BUN) y que por tanto
ocupa la posicion extremo-derecha. Su peso es de 2° = 1 (siempre).
Bit interpretado (calibrado en binario) Bit significant
Dato cuyo significado solo se obtiene hallando el equivalente binario e
interpretando ios valores segun las posiciones en que aparezcan los unos
y ceros.
Bus Bus
Haz de cables que recorre la totalidad de los circuitos electronicos de
un equipo de proceso de datos, portando tensiones de alimentacion y senales
de informacion de las que cada circuito usa las que le corresponde. En
el CPC464 dicho bus o haz es accesible en el mas grande de los dos
conectores impresos en la tarjeta situada en la parte posterior de la
carcasa.
L
CAD
GAD
Habitualmente interaccion entre la potencia de computo y la capacidad
grafica para constituir un tablero electronico de dibujo.
CAE
CAE
Ensenanza asistida por ordenador, modismo de los muchos que se afiaden
cada dfa, y que es difi'cil de separar del adiestramiento ayudado por
ordenador (CAI) y del aprendizaje apoyado por ordenador (CAL).
Captura de datos Data capture
Termino que describe la obtencion y colecta de datos procedentes de
cualquier fuente externa que son introducidos de alguna manera hacia
el ordenador central.
Caracter
Character
Cualquier simbolo con representacion grafica o que ejerza una determinada
accion siempre y cuando tenga asociado intrihsecamente una representacion
numerica interna.
En el CPC464 se utilizan los 256 posibles con bicos de 8 bitos.
Caracter grafico
Graphic character
Caracter de tipo visivo que no corresponde a las letras o signos habituales
y que puede estar previamente grabado o ser disenado por el usuario.
Pagina CA ■
GLOSARIO
Cartucho
Cassette
Cartridge
Cassette
Cajita de innumerables formas que se inserta en un alojamiento adecuado.
En informatica se suele reservar el termino 'cartuchos' para los que
incluyen pastillas de semiconductores grabadas en forma permanente,
indeleble (o deleble) con programas usualmente de juegos, vocabulario,
etc. Y se reserva el termino 'cassette' para los que incluyen como soporte
de informacion cinta magnetica trasladable entre los carretes en los dos
sentidos.
Cauce/Chorro
Stream
Tambien canal, flujo, ruta... El conducto por donde se encauza la
informacion transferida entre los diversos organos que integran un
ordenador. En ambos extremos del cauce suele haber un circuito de
almacenamiento temporal - un buzon cuando los ritmos de emision de
un equipo no coincide con el ritmo de admision del otro.
Celdilla/Celula Character cell
En relacion con la memoria se usa mas a menudo el termino celdilla para
designar el sitio donde esta alojado un caracter.
En relacion con la pantalla, se emplea mas habitualmente el termino
'celula' para designar la posicion ocupada por un caracter. En el CPC464
esta realmente formada por 64 motas dispuestas regularmente en 8 trazos
horizontales con 8 motas por trazo. La iluminacion selectiva de las motas
en uno u otro color determina el tipo del simbolo que aparece.
Chip Chip
Nombre popular (aunque muchos los llamamos 'pastillas' y "cucarachas"
y los puristas 'circuitos integrados en una sola oblea de silicio') del
microprocesador, las memorias, y demas...
Circuitalia
Hardware
Todo los aparatos, equipos, cables, que puedes tocar y son 'duros'.
Constituyen el soporte fisical de todo lo demas.
Circuito integrado Integrated Circuit
Componente electronico que incorpora centenares de diodos, transistores,
resistencias, etc. cosntituyendo todo un circuito especializado en una
funcion deter minada.
Codigo Code
Convenio generalmente numerico para representar informacion
estableciendo relaciones biunivocas con los sfmbolos visibles en pantalla,
impresora, teclado.
Pagina G.5 — *
Codigo barrado
Mire cualquier paquete de jabon y tendra un ejempio.
Codigo maquina
GLOSARIO
Bar code
Machine Code
Lenguaje de programacion que puede ser 'entendido* directamente por
el microprocesador y los circuitos internos del ordenador (es una forma
de hablar, solo entienden de electronica...).
Comando
Command
Orden o mandato dado directamente al ordenador que por supuesto,
inmediatamente obedece, a no ser que cometas un error de tecleado.
Compilador Compiler
Programa complejo que convierte y traduce programas escritos en
lenguajes de 'alto nivel' para personas, en programas escritos en lenguajes
de 'bajo nivel' para maquinas, consiguiendo asf una mayor rapidez de
ejecucion.
Con junto
Array
Mejor otros nombres como ringlas, tablas, arreglos, matrices, etc. para
designar colecciones de datos homogeneos dispuestos regularmente a los
que se les asigna un nombre generico y cuyos elementos pueden ser
individualmente seleccionados usando un sufijo que guarda relacion con
la posicion que ocupa dicho elemento.
Conjunto de instrucciones
Instruction set
Mejor repertorio; para designar las operaciones y acciones individuales
admitidas en un determinado lenguaje de programacion o en un determinado
ordenador, constituyendo las palabras clave o reservadas.
Los programas se escriben como series ordenadas de estas instrucciones,
y el programa interpretador se encarga de examinarlas, y desglosarlas
en las correspondientes series de operaciones que deben efectuarse
internamente por los organos circuitales del equipo, en particular el
microprocesador.
Conversion A/D
Analogic/Digital Conversion
Las magnitudes cuyo cambio entre un punto inicial y uno final ocurre
gradualmente y no de manera infinitesimalmente continua se denominan
digitales o discretas. Los ordenadores son mecanismos discretos y digitales
(aunque los hay analogicos) y por tanto, sus cambios de estado se producen
a impulsos. La mayoria del mundo natural esta basado en principios
analogicos (a nivel perceptible claro esta) por lo que en los ordenadores
es necesario efectuar una conversion analogico-digital a la entrada para
que el dato pase por sus portales de entrada.
Pagina G.6
#
GLOSARIO
Copia impresa Hard Copy
Listado en papel de un programa, texto, o imagen grafica que aparece
en pantalla. Su equivalente en un medio magnetico o electronico de
almacenamiento se conoce como copia grabada (soft copy).
CP/M CP/M
Marca comercial de Digital Research para el sistema operativo mas
ampliamente difundido en los ordenadores personales con microprocesadores
de 8 bits.
CPU Central Processing Unit
Unidad Procesadora Central. Es el organo circuital encargado de recabar
las instrucciones del programa de la memoria, examinarlas e interpretar
su significado, y ejecutar o controlar su ejecucion por otros organos
circuitales.
Cursor Cursor
Marca que 'corre' por toda la pantalla indicando la posicion en que
aparecera el siguiente caracter.
Cursor de graficos Graphics cursor
Similar al cursor de textos, pero habitualmente 'corre sin que se le vea 1 ,
pero capaz de situar los graficos usando coordenadas mas precisas. No
confundir con caracteres graficos.
Depuracion Debugging
La actividad de quitar las 'pifias' de un programa, mediante combinacion
de metodos cientfficos, practicos y demas.
Desrrolla/Despliega Scrolling
Desplazamiento de la pagina de texto visible en pantalla hacia cualquiera
de los costados o hacia la parte superior o inferior. El cursor no se
desplaza de su posicion relativa, sino con toda la ventana de texto.
Desrollador Mouse
Artilugio en forma de rodillo o bola que logra el desrolle en pantalla
por el simple rodamiento sobre su alojamiento en el teclado.
Documentalea Paperware
El conjunto de impresos, manuales, listados... que utilizan o generan los
procesos informaticos.
Pagina G.7
GLOSARIO-
Editar
Editor de plana
Editor de Uhea
Edit
Screen editor
Line editor
En el mundo informatico editar es primordialmente enmendar, corregir,
arreglar... las instrucciones de un programa. Dependiendo de las facilidades
del sistema se puede hacer desplazando el cursor por todas las partes
de la pantalla, o es preciso designar el numero de lihea que se desea
cambiar. En el CPC464 tienes la posibilidad de tratar con ambos 'editores 1 .
Error sintactico
Syntax error
Popularfsimo mensaje de error recibido cuando se infringe una o muchas
de las reglas gramaticales que estan convenidas.
Ex-lfnea
Off line
Estado en que se encuentra un periferico del ordenador cuando no esta
ligado directamente al ordenador, o no es accesible en ese momento por
alguna causa.
Generador de sonido
Sound generator
El conjunto de circuitos internos del sistema capaz de crear ruidos y
sonidos en base a los parametros y senales enviadas por el microprocesador,
Impresora Printer
Uno de los primeros perifericos que adquieres.
Ingenierfa de computacion
Una expresion grandiosa en ingles para indicar programacion y que no
suena tambien en otros idiomas.
Software engineering
In-lihea
On-line
Estado en que se encuentra un periferico cuando si' esta ligado directamente
al ordenador y ademas es accesible en ese momento.
Interface/Interfase
Interface
Frontera donde se 'encaran' las senales de dos equipos cualesquiera, o
en donde tiene lugar el cambio de una etapa a otra en un proceso.
Es el nexo de union. Se suele hablar de interface hombre-maquina para
designar la manera en que se relacionan y los medios utilizados.
Interface serie
Serial interface
Modo de acoplamiento entre dos equipos que se transfieren informacion,
en que se descompone el dato a nivel de bit y se envian sucesivamente
a traves de un conductor dichos bits. Con los ordenadores personales casi
siempre hace referenda a la norma RS232, aunque existen otras.
Pagina G.8
GLOSARIO
Interface paralelo Parallel interface
Modo de acoplamiento entre dos equipos que se transfieren informacion,
en que se envfan simultaneamente por varios conductores los bits que
componen un dato. La transferencia es mucho mas rapida que con una
interface serie.
El CPC464 lleva incorporados los circuitos necesarios para poder conectar
directamente impresoras con esta clase de interface.
Lapiz luminoso Light pen
Mecanismo con dicha forma que permite ingresar datos expuestos en
pantalla seflalandolos simplemente con el extremo puntiagudo. Tambien
hay versiones que permiten leer directamente codigos de barras, caracteres
opticos y hasta letra de imprenta normal.
Es algo asf como el famoso dedo de E.T.
Lazo/Bucle Loop
Situacion empleada en un programa para hacer que el ordenador se dedique
a dar rondas y mas rondas a la misma serie de instrucciones (muchas
veces sin que pretendieramos eso...).
Legible por maquina Machine readable
Un soporte de informacion que puede ser inmediatamente admitido en
un ordenador sin ningun tecleo adicional.
Lenguaje de bajo nivel Low-level language
Se aplica a aquellos lenguajes de programacion, tal y como el de
ensamblaje con un microprocesador dado, en que cada una de las
instrucciones escritas por el programador es casi un reflejo exacto de
las que acepta el microprocesador.
Lisp LISt Processor language
Procesador de listas; es otro de los lenguajes de 'alto nivel 1 . Especializado
en manejar textos y sartas de caracteres.
Logica (electronica) Logic
Nombre generico de los componentes electronicos que llevan a cabo
operaciones de logica aritmetica y logica comparativa, y a partir de los
cuales se construyen los organos circuitales del ordenador.
Logo Logo
Otro lenguaje de alto nivel simple de aprender y orientado hacia el
desarrollo de graficos, empleando preferentemente tecnicas recursivas.
Se esta popularizando en las escuelas infantiles como ayuda a la ensenanza
de informatica.
Pagina G.9 —
•GLOSARIO
LSI Large Scale Integration
Pastillas en que el numero de elementos de logica electronica incorporados
es grande, por supuesto mayor que en los MediumSI, que a su vez es mayor
que los SmallSI, en que es pequeno (que son cientos).
Mapa de memoria Memory map
Diagrama mostrando el reparto de memoria en diversas areas reservadas
para funciones determinadas, tablas de variables, programa ejecutandose,
interpretador BASIC, etc.
Matriz Matrix
Vease Conjunto. Usado ademas de en matematicas, para designar el
conjunto de agujas que forma el cabezal de escritura en las impresoras
matriciales. (Aunque la mayoria de ellas solo poseen un par de hileras
como mucho).
MEL RAM
Designa con mayor propiedad a la Memoria de Escritura y Lectura que
posee el ordenador, ya que el termino original ingles Random Access
Memory puede dar lugar a confusiones. Vease MUL.
MEMOrandum REM
Lo que sirve de recordatorio. En el BASIC la palabra clave es REM.
Memoria Memory
El conjunto de circuitos electronicos que organizados a manera de 'panal
de celdillas 1 permite al procesador senalar la direccion de cada celdilla
y alojar o extraer informacion de ella. Vease MEL y MUL.
Menu Menu
La 'carta' con que un programa te ofrece los 'platos' que puede servir.
Micrpprocesador Microprocessor
El causante de la popularizacion del ordenador y el circuito integrado
encargado de controlar todos los demas que componen el ordenador.
Modem Modem
Acronimo de modulador y demodulador, que son los procesos a efectuar
para pasar de un medio de transmision a otro, v.g. del ordenador a la
linea telefonica, y viceversa.
Pagina G.10
GLOSARIO-
Modo de graficos Graphics mode
Antiguamente, los ordenadores necesitaban ser modificados y ampliados
para poder realizar dibujos y pintar figuras en la pantalla. Los ordenadores
personales, actualmente pueden (unos mas y otros menos) mezclar text'os,
numeros y graficos sin mas que pulsar una tecla o darles un comando.
Modulador UHF UHF modulator
Equipo mediante el cuai las senales de video del ordenador son
transformadas para adecuarlas a las normas establecidas para la
transmision en Ultra High Frecuency en television.
Monitor Monitor
Debfa reservarse para designar el equipo que muestra la informacion:
la pantalla; pero tambien se usa para designar el programa que permite
controlar y observar la operacion del ordenador trabajando en codigo
maquina.
Mota Pixel
La minima area accesible de la pantalla que puede ser iluminada en uno
u otro color. (Pixel es acronimo de picture element).
MUL ROM
Memoria Unicamente de Lectura. MUL designa con mayor propiedad a
la memoria del ordenador que viene grabada de fabrica. El termino
original ingles Read Only Memory, es perfectamente valido, pero da la
casualidad que la ROM es una memoria de acceso Random tambien.
Notacion decimal Decimal notation
Notacion hexadecimal Hexadecimal notation
Aunque el fundamento de los ordenadores es la notacion binaria, tambien
se usa el sistema en base 10 con sus digitos 0, 1,2, 3, 4, 5, 6, 7, 8, 9
y todo lo demas.
Todo numero puede expresarse tambien en cualquier otra base y la mas
util en los ordenadores personales es la base 16, que en el CPC464 se
puede usar directamente mediante el prefijo & o &H. (Y la binaria
tambien, mediante el prefijo &X).
Notacion polaca inversa Reverse polish notation
Metodo usado internamente para las operaciones aritmeticas y que algunos
fabricantes propugnan con sus calculadoras. Es polaca por su origen, e
inversa porque los signos de operacion se colocan despues de los operandos.
Extremadamente util.
Pagina G.ll
GLOSARIO
Numeros reales
Real numbers
Conjunto de numeros formados por los enteros positivos y negativos, los
racionales (3, 4) y los irracionales (it, e) el problema es que la llamada
parte decimal de un numero puede confundirte porque se refiere realmente
a la parte fraccionaria (la que esta detras de la coma (hispano-parlantes)
y detras del punto (anglo-parlantes)).
OCR Optical Character Recognition
Un medio de leer caracteres impresos o manuscritos con una lectora
optica para transferirlos a un soporte de informacion legible por la
maquina.
Octal Octal
Sistema numerico de base 8, con 8 sfmbolos posibles (0 a 7) que en binario
se representa por 3 bitos.
PASCAL
PASCAL
Lenguaje de alto nivel que empieza a ser asequible en los ordenadores
personales.
Periferico
Peripheral
Primitivamente todos los equipos situados en la periferia del ordenador
central como consolas, impresoras, ductoras de cinta y de disco, etc.
Actualmente, solo estan en la periferia desde un punto de vista conceptual,
pero materialmente pueden formar parte del ordenador, en especial
teclados y ductoras de cinta para mejor aprovechamiento.
Pinzar
PEEK
Accion de sacar de su celdilla de memoria el contenido para aprovecharlo,
simplemente fisgar, o examinar como se puede copiar un programa.
Portabilidad
Portability
Atributo para designar la mayor o menor facilidad que tiene un programa
para ser traspasado de un sistema a otro.
Portal
Port
Tambien 'puerto' y 'compuerta'. Un sitio directamente direccionable por
el procesador y similar por tanto, a una celdilla de memoria en alguna
manera, que permite la entrada y salida de datos del mundo exterior.
Portor
Sprite
No es un refresco. Sino el mecanismo por el que se Uevan las figuras
por toda la pantalla de un lado a otro. Y no hay 'espiritus', 'duendes',
ni 'meigas' que valgan; es necesario trabajar bastante.
Pagina G.12
GLOSARIO-
Programa Program
Serie detallada y ordenada exactamente que gobierna el funcionamiento
de todo ordenador.
Programa de aplicacion
Applications program
Un programa con una labor especi'fica que realizar, concretamente para
realizar un proceso determinado y en contraposicion con los utensilios
de programacion y operacion, tales como programas compiladores,
interpretadores, gestores de impresoras, ductoras de cassette, etc. que
realizan tareas generales y ayudan a la programacion y operatoria de
un sistema.
Programacion estructurada Structured programming
Metodos y tecnicas de programacion sistematica partiendo de un analisis
de la labor general y desglosandola en las tareas que la componen.
Programalia Software
Todo lo referente al aspecto logical del funcionamiento de los ordenadores.
Vease Circuitalia.
PROM ProgrammableROM
Memoria Unicamente de Lectura de la que puede borrarse la informacion
y volverse a "escribir" utilizando equipos relativamente simples y baratos.
Puertas
Gates
Componentes electronicos que realizan las funciones logicas primarias
tales como YLIacion (AND), OLIacion (OR), OLEacion (XOR), NegaciOn
(NO)... No confundir con los portales.
Punzar
POKE
AcCion de meter -hincar- en una determinada celdilla de memoria un
determinado valor. Vease Pinzar.
Reconocimiento de la voz
Speech recognition
Investigaciones y estudios para que sirva directamente el habla como
entrada de datos al sistema ordenador; que ya empiezan a traducirse en
equipos comerciales.
Recursion Recursion
Variante fundamental de los bucles e iteraciones usadas en programacion
que viene a consistir en algo asf como lo que siempre se prohibfa.
Lo definido no puede entrar en la definicion.
Pagina G.13
GLOSARIO-
Redes
Networks
Dos o mas ordenadores estrechamente enlazados para el intercambio de
datos e informaciones.
Registro
Register
Con lenguajes de alto nivel es una ficha de un fichero.
En la maquina circuitos especiales para manipulacion de los octetos e
incluidos normalmentei dentro del propio microprocesador. Vease
Acumulador.
Resolucion
Resolution
La capacidad para discriminar las motas y trazos componentes de una
figura. Algunas veces aplicado impropiamente a la 'precision' con que
los niimeros se manejan internamente.
Ruido
Noise
Ademas del significado normal, hace referenda a las posibilidades de
algunos ordenadores para simular explosiones, bombazos, disparos, etc.
y algunos, el CPC^64 entre ellos, son expertos.
Rutina
Routine
PARRAFO de un programa que realiza una tarea concreta y deter minada
y que puede existir como 'modulo' incorporable en diferentes programas.
Suele emplearse para aquellas tareas 'rutinarias' que se ejecutan
constantemente en un programa.
Salida Output
Todo lo que el ordenador pone fuera de sus dominios.
Sarta String
Tambien 'cadena', 'ristra', 'letrero'... En BASIC el concepto es fundamental
y representa series de caracteres cualesquiera que se "entrecomillan"
para indicar que han de tomarse letra a letra y no ser interpretados
en absolute Por contraposicion a numero, tambien se les llama lftero.
Sentencia
Statement
Termino cayendo en desuso por razones obvias. Se prefiere 'declaraciones'
cuando son instrucciones en el programa que enuncian la clase de variables
a usar, las tablas y ficheros, etc.
Separador
Separator
Suelen ser los signos«de puntuacion habituales ,.;:... que permiten
separar clausulas dentro de una frase o datos en una lista.
Pagina G.14
GLOSARIO •
Operador Operator
A parte de tu mismo cuando estas ante la maquina, se refiere a los
signos que indican la clase de operacion a efectuar + -*/*( )...
Simulacion
Simulation
Una tecnica para remedar situaciones de la vida real usando el ordenador,
en sistemas utiles para el aprendizaje practico o analisis y previsiones
de future
Sintetizador de voz
Speech synthesis
Estudios, investigaciones y equipos que permiten generar los fonemas,
palabras y frases del habla humana.
Sistema operativo
Operating system
Conjunto de programas residentes permanentemente en memoria o
implantados desde la memoria auxiliar, encargados de las labores
'domesticas' del sistema del que viene a ser gobernador.
Overwrite
Sobre-escribir
No es reescribir sino mas bien escribir encima de algo, borrando o no
lo que hubiera.
Subrutina Subroutine
Vease Rutina.
Tabla de verdad Truth table
Diagrama que muestra en un solo bloque los operandos y los resultados
de una operacion logica, y a pesar del nombre, se suele usar un 1 para
indicar cierto y un para indicar falso.
Tablero grafico Graphics tablet
Artefacto mas o menos rectangular con una amplia superficie plana para
que lo dibujado sobre el mismo sea directamente transferido al ordenador.
Tecla programable
Tecla funcional
Soft key
Function key
Una tecla a la que se le puede asociar una funcion a voluntad.
El CPC464 dispone de una amplia variedad, y con capacidad para enviar
hasta 32 caracteres con una sola pulsacion.
Teclado
Teclado numerico
Keyboard
Numeric keypad
Lo que estas pulsando continuamente y que para mayor facilidad en el
CPC464 se presenta en dos grupos separados, despues de haber tenido
en cuenta todos los factores ergonomicos.
— — — Pagina G.15
•GLOSARIO-
Teclado QWERTY QWERTY Keyboard
Observa el de una maquina de escribir y veras que al lado de la Q esta
la W, luego la E, luego la R y la T, y le sigue la Y, y si no, no es QWERTY.
L
Terminal inteligente
Itelligent terminal
Equipo donde ademas de satisfacer las necesidades de entrada y salida
de datos, dispone tambien de capacidad de proceso propia.
Terminal tonto Dump terminal
Simplemente no tiene la 'mollera' que tiene el anterior.
Tiempo real Real time
Cuando el ordenador proporciona respuestas a nuestras entradas de manera
que podemos inmediatamente tomar las decisiones pertinentes, decimos
que el ordenador trabaja en tiempo real. Si tenemos que aguardar a que
concluya el proceso que esta efectuando para poder actuar, es que trabaja
en diferido.
Transferencia descendente
Download
En una red de ordenadores es la transferencia desde el ordenador central
hacia los perifericos. Cuando la transferencia es en sentido contrario,
es ascendente (Upload).
Trazadora
Plotter
Una clase especial de impresora que desplaza el papel en todos los
sentidos y suele usar pluma o chorros de tinta en lugar de agujas de
impacto. Usada primordialmente para dibujos tecnicos.
Unidad aritmeticologica ALU
Incorporada en el microprocesador generalmente y a veces como circuito
electronico separado, es el especialista en realizar dichas operaciones,
recibiendo los operandos del microprocesador y suministrando los
resultados de la operacion.
Utensilio (de programacion) Utility
Programa y conjunto de programas que se usa frecuentemente para llevar
a cabo tareas comunes en todos los ordenadores como copias ficheros,
mantener catalogos, etc.
Variable
Variable
El elemento fundamental manejado por un programa que corresponde a
un sitio de la memoria identificado por un 'nombre concreto' y donde
se aloja el dato asociado.
Pagina G.16
Palabras reservadas, codigos de ERROR
Apendice VIII:
Codigos de error y palabras reservadas
Numeros y mensajes de error
Cuando BASIC encuentra una instruccion, palabra o variable en una li'nea
del programa que no puede interpretar ni ejecutar, detendra el programa
y mostrara un mensaje de error. La forma del mensaje indicara
generalmente lo que esta equivocado, y algunas veces si el error es un
error tipografico al escribir el programa, el BASIC pasara automaticamente
al modo edicion, mostrando la li'nea donde ha detectado el error.
El mensaje mas popular entre los usuarios descuidados es el 'Error
sintactico' (numero 2) y el BASIC lo muestra junto con la li'nea que debera
EDITAR si detecto el error al ejecutar el programa. En el modo directo,
cuando le impones comandos, simplemente declara que ha detectado un
error, y presupone que la ultima li'nea tecleada es visible y por tanto
puedes examinarla en busca del problema.
Si has incluido al comienzo del programa la instruccion ON ERROR GOTO
para que SEGUN error VAYA..., a un determinado numero de lfnea en
que comienza el tratamiento de errores, dara un salto a ese parrafo
inmediatamente que detecte el error, y antes de sacar sus mensajes
prescritos. En el ejemplo, el ordenador saltara a la li'nea 1000 al detectar
un error:
10 ON ERROR GOTO 1000
prwjraa
1000 PRINT CHR*(7) :M0DE 2: INK 1,0: INK 0,9: CLS :LIST
Y en este caso, ante el error, el CPC464 emitira un pitido, limpiara lo
que haya en pantalla, y cambiara a la combinacion de colores mencionada
y en el modo de imagen de 80 columnas, y luego listara el programa
para que puedas examinarlo. Si el error es un error sintactico, aparecera
al pie del listado la li'nea en que lo detecto, esperando que la corrijas
(edites) aunque el mensaje habitual
Syntax Error
sera suprimido. (Recuerda colocar una instruccion END en la li'nea
inmediatamente anterior a la 1000, si deseas conservar lo que tengas
puesto en pantalla cuando el programa haya sido ejecutado normalmente).
■Apendice VIII Pagina 1
t
Palabras reservadas, codigos de ERROR
El BASIC no producira mensajes de error cuando las li'neas de programa
ingresadas por teclado son validas; por lo tanto, debe suponerse que siempre
que ocurre un error, puede ser RASTREADO siguiendo el hilo del programa,
y habitualmente guiandose por los mensajes producidos durante el proceso
de DEPURACION del mismo. Como en muchas otras situaciones, aprenderas
mas y mejor analizando tus equivocaciones, y abusando del hecho de que
el CPC464 es el mas tolerante de los 'tutores'. Te cansaras de ensayar
mucho antes de que el CPC464 muestre signos de impaciencia.
Todos los mensajes de error generador por BASIC, estan enumerados en
este Apendice, ordenador por el numero de error pertinente. Tambien
te presentamos una breve descripcion de las posibles causas.
1 Unexpected NEXT
Ha encontrado una instruccion que ie manda dar OTRA posible ronda
deun bucle, 'inesperadamente' porque no estaba repitiendo nada; o la
variable de control mencionada en la instruccion NEXT no concuerda
con la mencionada en la instruccion FOR.
2 Syntax Error
Normalmente alguna palabra clave esta mal deletreada, o no hay igual
numero de parentesis de cierre que parentesis de apertura en una expresion.
3 Unexpected RETURN
Se ha encontrado con una instruccion en que le pides VUELVA 'inesperada 1 ,
porque no se habia desviado en ningun momento anterior.
k DATA exhausted
Le mandas que 'apunte' el siguiente DATO y ya esta .'exhausta'... la serie
de constantes que mencionas en el programa.
5 Improper argument
Tiene un significado general que indica que el valor del ARGUMENTO
de una funcion es 'impropio', o que el parametro mencionado en una
instruccion 'no es valido'.
6 Overflow
El resultado de una operacion aritmetica hace que se REBASE la gama
de valores permitida a la variable. Puede corresponder a una variable
real, en cuyo caso, en esa operacion se ha producido un valor mayor en
valor absoluto que 1.7E-38 (aprox.). Tambien puede ser el resultado de
un intento fallido de cambiar un numero real a un numero entero, cuando
la parte entera del numero real se sale fuera de la gama -32768 a +32767.
Apendice VIII Pagina 2
Palabras reservadas, codigos de ERROR
7 Memory full
La memoria esta 'llena 1 . El programa es demasiado largo, o simplemente
hay demasiadas variables, o innumerables 'desvi'os' y 'bucles'.
El comando MEMORY dara este error si se intenta estipular un valor
demasiado bajo como 'cima' de la memoria reservada a BASIC; o bien
un valor imposiblemente elevado. Recuerda ademas, que al abrir un fichero
se ocupa un determinado espacio en memoria para ser usado como buzon
donde alojar los registros procedentes o con destino al fichero, y eso
restringe la memoria disponible.
8 Line does not exist
Mencionas un numero de linea que no existe en el programa.
9 Subscript out of range
Uno de los SUFLJOS ('suscritos 1 o 'subindices') usado para seleccionar
un elemento de una tabla, esta 'fuera de gama', por demasiado grande
o demasiado pequeno.
10 Array already dimensioned
La tabla (RINGLA) que mencionas 'ya esta dimensionada 1 . Debes
previamente hacer que LIBRE el espacio pertinente. (ERASE),
11 Division by zero
Con esos valores resulta una 'division por cero 1 .
12 Invalid direct command
Le estas dando un comando, usando una palabra clave que solo admite
como instruccion, ie. precedida de un numero de linea.
13 Type mismatch
'Clase discordancia'. Das como valor de una variable literal una constante
numerica, o viceversa.
1* String space full
Esta 'lleno el espacio' que internamente reserva para las 'sartas' de
caracteres (LITEROS ENTRECOMILLADOS). Ya no dispone de mas espacio,
incluso aunque haya hecho 'recogida de basura'. (Supresion de los viejos
valores de las variables literales).
15 String too long
'SARTA demasiado larga', pues sobrepasa de 255 caracteres. Puede ser
resultado del empalme de datos litericos.
5
-Apendice VIII Pagina 3-
Palabras reservadas, codigos de ERROR
16 String expression too complex
Cuando las 'expresiones literales son demasiado complejas' porque pueden
dar lugar a demasiados valores intermedios, que exceden de un li'mite
razonable.
17 Cannot CONTinue
'No puede continuar'. Observa que el comando CONT es para hacer que
SIGA un programa que se ha visto interrumpido por encontrar una
instruccion STOP, que le hace que PARE; porque has pulsado ESC ESC
para ESCAPAR; pero no para cuando ha detectado un error y EDITAS
esa instruccion y luego quieres que continue. En esa situacion es imposible
que SIGA con el programa en el punto en que se interrumpio.
18 Unknown user function
Esa funcion definible por el usuario es 'desconocida'. Necesitas avisarle
previamente para que la USE.
19 RESUME missing
NO es que 'falte' el resumen. Lo que SI falta es la instruccion para que
REANUDE en algun punto el programa despues de haberse visto "atrapado"
en un error, que el propio programa se encarga de tratar.
20 Unexpected RESUME
NO es un 'inesperado' resumen. SI es que no puedes decirle
'inesperadamente' que REANUDE cuando no se ha visto 'atrapado' en
ningun error. Coloca una instruccion para que PARE o TERMINE antes
de que llegue al parrafo pertinente.
21 Direct command found
Solo puede aparecer despues de CARGAR un programa desde el cassette,
y es porque ha 'encontrado' un COMANDO (directo) y no una instruccion
(con numero de li'nea delante).
22 Operand missing
En esa expresion 'falta' algun operando.
23 Line too long
'Li'nea demas ; ado larga'.
2* EOF met
Intentas tomar informacion del cassette, y te has 'topado' con el final
del fichero.
Apendice VIII Pagina 4
Palabras reservadas, codigos de ERROR
25 File type error
'Error en la CLASE (tipo) de fichero'. El fichero que hay en la cinta
no es de la clase adecuada. Observa que el comando OPENIN solo esta
preparado para ABRIR como fichero de ENTRADA, ficheros con textos
en caracteres ASCII; y que los comandos LOAD, RUN, solo estan
preparados para ficheros con programas que previamente has hecho que
GUARDE mediante el comando SAVE.
26 NEXT missing
No puede encontrar la instruccion que le mande hacer OTRA ronda,
y estando dentro de un bucle.
27 File already open
Ese 'fichero ya esta abierto'. Quizas convenga decirle que lo CIERRE,
mediante la instruccion CLOSED.
28 Unknown command
Comando 'desconocido 1 .
29 WEND missing
No puede encontrar la instruccion WEND que siempre tiene que haber
en correspondencia con cada instruccion WHILE.
30 Unexpected WEND
Encontro una instruccion WEND sin estar dentro de un bucle WHILE.
Palabras clave en el BASIC AMSTRAD
Las siguientes, son las palabras clave en BASIC, y estan reservadas para
significar exactamente lo que hemos descrito en esta gui'a.
ABS, AFTER, AND, ASC, ATN, AUTO
BIN*, BORDER
CALL, CAT, CHAIN, CHR*, CINT, CLEAR, CLG, CLOSEIN,
CLOSEOUT, CLS, CONT, COS, CREAL
DATA, DEF, DEFINIT, DEFREAL, DEFSTR, DEG, DELETE,
DI, DIM, DRAW, DRAWR
EDIT, EI, ELSE, END, ENT, ENV, EOF, ERASE, ERL, ERR,
ERROR, EVERY, EXP
FIX, FN, FOR, FRE
■Apendice VIII Pagina 5
Palabras reservadas, codigos de ERROR
GOSUB, GOTO
HEX*, HIMEN
IF, INK, INKEY, INKEY*, INP, INPUT, INSTR, INT
JOY
KEY
LEFT*, LEN, LET, LINE, LIST, LOAD, LOCATE, LOG, LOG 10,
LOWER*
MAX, MEMORY, MERGE, MID*, MIN, MOD, MODE, MOVE, MOVER
NEXT, NEW, NOT
ON, ON BREAK, ON ERROR GOTO, ON SQ, OPENIN, OPENOUT, OR,
ORIGIN, OUT
PAPER, PEEK, PEN, PI, PLOT, PLOTR, POJE, POS, PRINT
RAD, RANDOMIZE, READ, RELEASE, REM, REMAIN, RENUM,
RESTORE, RESUME, RETURN, RIGH*, REND, ROUND, RUN
SAVE, SGN, SIN, SOUND, SPACE*, SPC, SPEED, SQ, SQR,
STEP, STOP, STR*, STRING*, SWAP, SYMBOL
TAB, TAG, TAGOFF, TAN, TEST, TESTR, THEN, TIME, TO,
TROFF, TRON
UNT, UPPER*, USING
VAL, VPOS
WAIT, WEND, WHILE, WIDTH, WINDOW, WRITE
XOR, XPOS
YPOS
ZONE
I
Apendice VIII Pagina 6
ABS 8.4
AFTER 8.5; 10.1
AND 4.18
ASC 8.4
ASCII 1.7; A.3.1
ATN 8.5
AUTO 4.19; 8.5
BIN$ 8.5
BORDER F3.3; 4.15; 8.6
CALL 8.6
CAPS LOCK F2.3
CAT 8 6
CHAIN , CHAIN MERGE 8.7
CHR$ F3.9; 1.8
CINT 8.8
CLEAR 8.8
CLG 8.9
CLOSEIN 8.9
CLOSEOUT 8.9
CLR F2.3
CLS F2.5; 8.9
CONT 4.7; 8.10
COPY F2.ll; 1.19
COS 8.10
CREAL 8.11
CTRL 1.9; 9.2
DATA 4.18; 8.11
DEF FN 8.12
DEFINT, DEFREAL, DEFSTR 8.12
DEC 8.12
DEL F2.1
DELETE 8.13
DI 8.13
DIM 4.15; 8.14
DRAW F3.13; 8.15
DRAWR F3.13; 8.15
EDIT F2.10; 1.19; 8.15
EI 8.16
END 8.16
ENT F3.20; 8.16
ENTER F2.1; 1.10
ENV F3.19; 8.18
EOF 8.20
ERASE 8.20
ERL, ERR 8.20
ERROR 8.21; A.8
ESC F2.4
EVERY 8.21; 10.3
INDICE - 1
EXP 8.22
FIX 8.22
FOR F2.13; 8.22
FRE 8.23
GOSUB F3.16; 8.23
GOTO F2.7-, 8.23
HEX$ 8.24
HIMEM 8.24
IF F2.12; 4.13; 8.24
INK F3.5; 8.25
INKEY 8.25
INKEY$ 8.26
INP 8.26
INPUT F2.8; 8.27
INSTR 8.28
INT 8.28
JOY 8.28
KEY 8.29
KEY DEF 8.29
LEFT$ 8.30
LEN 8.30
LET 8.31
LINE INPUT 8.31
LIST F2.7; 1.16; 8.31
LOAD 8.32
LOCATE F3.9; 4.12; 8.32
LOG 8.33
LOG 10 8.33
LOWER$ 8.34
MAX 8.34
MEMORY 8.34
MERGE 8.35
MID$ 8.35
MIN 8.36
MOD 4.2
MODE F3.1; 8.36
MOVE 8.36
MOVER 8.37
NEW F3.14; 8.37
NEXT F2.13; 8.38
NOT 4.22
ON BREAK GOSUB 8.39
ON BREAK STOP 8.39
CN ERROR GOTO 8.40; A.8
ON GOSUB ON GOTO 8.38
ON SQ GOSUB 6.12; 8.40
OPENIN 8.41
OPNEOUT 8.41
ORIGIN F3.15; 8.42
INDICE - 2
OUT 8.42
PAPER F3.2; 8.43
PEEK 8.43
PEN F3.2; 8.44
PI 8.48
PLOT F3.12; 8.45
PLOTR 8.45
POKE 8.46
POS 8.46
PRINT F2.6; 8.47
RAD 8.47
RAM A.4
RANDOMIZE 8.47
READ 8.48
RELEASE 8.48
REM 8.48
REMAIN 8.49
RENUM 8.49
RESTORE 8.50
RESUME 8.50
RETURN F3.16; 8.51
RIGHT$ 8.51
RND 8.51
ROUND 8.52
RUN F2.6; 8.52
SAVE F1.12; 8.53
SGN 8.54
SHIFT F2.1
SIN 8.54
SOUND F3.17; 6.1; 8.54; A.3; A.7
SPACE$ 8.55
SPC 8.69
SPEED INK 8.55
SPEED KEY 8.56
SPEED WRITE 8.56
SQ 6.12; 8.57
SQR 8.57
STEP F2.13
STOP 8.58
STR$ 8.58
STRING$ 8.58
SYMBOL 8.59
SYMBOL AFTER 8.59
TAB 3.8; 8.70
TAG 8.60
TAGOFF 8.60
TAN 8.61
TEST 8.61
TESTR 8.61
INDICE - 3
■^
THEN F2.12;
TIME 8.62
TO F2.13
TRON, TROFF 8.62
UNT 8.62
UPPER$ 8.63
USER PORT A.5
USING 3.8; 8.71
VAL 8.63
VPOS 8.64
WAIT 8.64
WEND 8.65
WHILE 8.65
WIDTH 8.66
WINDOW 5.12; 8.66
WRITE 8.67
XOR 4.22
XPOS 8.67
ZONE 3.8; 8.68
•
INDICE - 4
k!&.
^